1

我有这两个模型:

用户

has_one :additional_data, :dependent => :destroy
accepts_nested_attributes_for :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.

4

2 回答 2

1

查看validates_associated。它验证关联的一个或多个对象本身是否都是有效的。

# user.rb
has_one :additional_data, :dependent => :destroy

validates_associated :additional_data

accepts_nested_attributes_for :additional_data
于 2012-09-09T13:48:12.683 回答
1

默认情况下,Rails 不会显示内联错误。

您可以使用我推荐的简单表单之类的插件,也可以通过迭代在表单开头显示错误@user.errors.full_messages

于 2012-09-09T13:16:20.213 回答