当我为订单所属的发件人创建嵌套字段时,如果表单填写不正确,我将无法看到任何错误消息。
orders.rb - model
class Order < ActiveRecord::Base
belongs_to :sender, :class_name => "Client"
belongs_to :recipient, :class_name => "Client"
end
clients.rb - model
class Client < ActiveRecord::Base
validates_presence_of :first_name
end
new.erb.html - 表单
<% form_for(@order) do |f| %>
<%= f.error_messages %>
...
<% fields_for :sender do |s| %>
<%= s.error_messages %>
<p>
<%= s.label :telephone, "Phone number" %><br />
</p>
...
我没有使用accepts_nested_attributes_for,因为它对我的belongs_to模型不起作用。 我已经创建了所需的表单字段和控制器,用于保存我需要的数据。
如何显示发件人和收件人的错误消息?
我正在使用Ruby On Rails 2.3.11
提前致谢。
答案 0 :(得分:0)
看一下类似的帖子,我想它可以回答你的问题:http://jedschneider.posterous.com/validation-messages-on-associated-attributes
答案 1 :(得分:0)
如果要在保存订单时验证客户端,可以执行以下操作:
class Order < ActiveRecord::Base
belongs_to :sender, :class_name => "Client", :validate => true
belongs_to :recipient, :class_name => "Client", :validate => true
end
如果您在保存客户端时尝试验证订单,则可以执行以下操作:
class Client < ActiveRecord::Base
has_many :orders, :validate => true
end
如果由于某些原因那些不适合你的话,如果你解释原因,将会有所帮助。您提到您不能使用accepts_nested_attributes_for
,但我认为您仍在使用关联 - 否则我不确定您将验证什么。