我想让我的用户表单也允许用户通过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 %>
答案 0 :(得分:6)
company
的{{1}}属性不应为 - User
,因此无论是在控制器中还是在表单中,都要创建它:
nil
答案 1 :(得分:4)
在模型中而不是视图或控制器中执行此操作可能更好。
class User
# Blah blah blah
def profile
super || build_profile
end
end
答案 2 :(得分:0)
Zabba的上述解决方案仅对我有用:
<% @user.build_profile if @user.profile.nil? %>
Othwerise,该观点不知道“用户”是什么