0
以下是2个模型:客户和地址。客户has_one
地址。如何在嵌套属性验证失败时引发错误
class Customer < ActiveRecord::Base
has_one :address
accepted_nested_attributes_for :address, :allow_destroy => true
end
class Address < ActiveRecord::Base
belongs_to :customer
validates :add_line, :presence => true
end
<% simple_form_for @customer do |f| %>
.....
<%=f.simple_fields_for :address do |builder| %>
<%=render ('address', f: builder) %>
<% end %>
<%end %>
地址视图
<%=f.input :add_line %>
address
在customer
嵌套属性。我们遇到的问题是,如果在customer
视图内错误地修改了address
(例如,012,),则不会出现错误(客户控制器中的@customer.update_attributes
)弹出。有没有办法以这种方式设置嵌套属性nil add_line
将失败更新?
有belongs_to的模型了。 'reject_if'对模型“address”中的验证是多余的? 'address_invalid'会在'address'模型中重复验证。 – user938363
我们遇到的问题是,如果'add_line'在'address'模型中为零,那么控制器应该提高错误而不是默默地让它传递。如果在嵌套模型中存在验证失败,请尝试'!'并且不会引发错误。 – user938363
它在'Customer'模型中的验证方法是否会失败/出错? –