我有这两个型号:
用户
has_one :additional_data, :dependent => :destroy
accepts_nested_attributes_for :additional_data
additional_data
belongs_to :user
validates :skype, :presence => {:message => 'cannot be blank.'}
并形成:
<%= form_for@user do |f| %>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<%= f.fields_for :additional_data do |ad| %>
<p>
<%= ad.label :skype, "Skype" %><br />
<%= ad.text_field :skype %>
</p>
<% end %>
<% end %>
如果我发送空表单,则不会显示有关丢失Skype数据的消息。我错过了什么?
另外,我想问你,如果我可以根据URL中的变量值来验证additional_data
。
答案 0 :(得分:1)
默认情况下,Rails不会显示内联错误。
您可以使用我推荐的simple form插件,也可以通过迭代@user.errors.full_messages
在表单开头显示错误。
答案 1 :(得分:1)
结帐validates_associated。它验证关联的对象或对象本身是否都有效。
# user.rb
has_one :additional_data, :dependent => :destroy
validates_associated :additional_data
accepts_nested_attributes_for :additional_data