2013-04-18 99 views
-1

Iam在rails中使用嵌套窗體3.2.8當我進入編輯頁面時,當添加嵌套屬性並將其設置爲空並提交表單時嵌套屬性未經驗證,顯示消息,這些如何驗證嵌套表格嵌套屬性對嵌套屬性的驗證

回答

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 

用戶模型有一個公司,假設我們想接受用戶公司的嵌套屬性。

型號北美經銷商:

class Company < ActiveRecord::Base 
    belongs_to :User 
    attr_accessible :company_name, :address 
    validates :company_name, :presence => true 
    validates :address, :presence => true 
end 

模型北美經銷商有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 %>