Iam在rails 3.2.8中使用嵌套表单当我进入编辑页面时,如果你添加嵌套属性并将其设置为空并提交表单,嵌套属性未经过验证且不显示消息这些如何验证嵌套形式的嵌套属性
答案 0 :(得分:3)
让我们考虑您的代码如下:
用户模型:
class User < ActiveRecord::Base
has_one :company
attr_accessible :first_name, :last_name
validates :first_name, :presence => true
validates :last_name, :presence => true
accepts_nested_attributes_for :Company
end
用户模型有一家公司,并假设我们要接受用户公司的嵌套属性。
Comapny模型:
class Company < ActiveRecord::Base
belongs_to :User
attr_accessible :company_name, :address
validates :company_name, :presence => true
validates :address, :presence => true
end
Comapny模型具有company_name和地址。 您可以从用户视图和用户接受公司属性,保存它将检查两个验证,即用户和公司。 如果任何验证失败,您将在用户中获得它 为此,将以下行添加到用户视图
<% if @user.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(@user.errors.count, "error") %>.
</div>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>