验证嵌套属性

时间:2013-04-18 04:47:49

标签: ruby-on-rails

Iam在rails 3.2.8中使用嵌套表单当我进入编辑页面时,如果你添加嵌套属性并将其设置为空并提交表单,嵌套属性未经过验证且不显示消息这些如何验证嵌套形式的嵌套属性

1 个答案:

答案 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 %>