2010-04-20 59 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 %>