[英]accepts_nested_attributes_for doesn't work properly for has_one relationship
[英]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.