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'模型中的驗證方法是否會失敗/出錯? –