2010-04-20 58 views
0

如果子資源真的是有什麼問題而不是父資源,那麼添加錯誤以呈現錯誤的最佳方式是什麼?在英語中我的意思是下面..想象下面的代碼:在Ruby on Rails中捕獲子資源的錯誤

@foo = Foo.new 
foochild = Foochild.new 
// break foochild somehow 
@foo << foochild 
@foo.save 

現在,當我做:

format.xml { render :xml => @foo.errors } 

我得到的是一個通知,foochild是無效的。它不包含它包含在我的validates_format_of方法中的消息。如何讓它顯示該消息而不是通用foochild是無效的?有什麼我必須做的消息,以泡沫到其父資源顯示在@ foo.errors?

回答

1

對於這種類型的開發,始終使用「validates_associated」。例如,在你的控制器

@foo = Foo.new 


@foochild = @foo.foo_childs.build 

if @foo.save 


else 
    format.xml { render :xml => @foo.errors } 
end 

,並在您的視圖

<%= error_messages_for :foo, :foo_child %>