簡體   English   中英

如何在一個關系中使用accepts_nested_attributes_for設計?

[英]How to get devise to work with accepts_nested_attributes_for in a has one relationship?

我試圖讓我的用戶表單也允許用戶通過form_for同時填寫他們的公司資料。 由於某種原因,它沒有顯示公司領域。 這是我的控制器和布局代碼。

class User < ActiveRecord::Base
  attr_accessible :company_attributes

  has_one :company
  accepts_nested_attributes_for :company
end

class Company < ActiveRecord::Base
  belongs_to :user

  # Validation
  validates :name, :presence => true
end

<%= f.fields_for :company do |company_form| %>
  <div class="field">
    <%= company_form.label :name, "Company Name" %><br />
    <%= company_form.text_field :name %>
  </div>
<% end %>

company的的屬性User應該是不可─ nil ,因此無論是在控制器或形式,創建它:

<% user.build_company if user.company.nil? %>
<%= f.fields_for :company do |company_form| %>
...

在模型中而不是視圖或控制器中執行此操作可能更好。

class User
  # Blah blah blah
  def profile
    super || build_profile
  end
end

Zabba的上述解決方案僅對我有用:

<% @user.build_profile if @user.profile.nil? %>

Othwerise,觀點不知道“用戶”是什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM