我已经查看了有关stackoverflow和其他地方这个相当常见的问题的所有帖子,但我还没有找到答案.基本上我的嵌套表单没有构建,因此在我显示页面时不可见.
这是我的用户控制器的相关部分,users_controller.rb
:
def new @user = User.new @user.build_user_account end
这是我user.rb
文件中的相关部分:
class User < ActiveRecord::Base has_one :user_account, :class_name => "UserAccount" accepts_nested_attributes_for :user_account
我的user_account.rb
档案:
class UserAccount < ActiveRecord::Base belongs_to :user end
这是我的_form.html.erb
档案:
<%= f.label :email %>
<%= f.text_field :email %><%= f.label :password %>
<%= f.text_field :password %><%= f.label :password_confirmation %><% f.fields_for :user_account, @user.user_account do |user_account| %>
<%= f.text_field :password_confirmation %><%= user_account.label :email %> <%= user_account.text_field :email %><%= user_account.label :password %> <%= user_account.text_field :password %><%= user_account.label :password_confirmation %> <%= user_account.text_field :password_confirmation %><% end %>
前三个按预期显示,但三个表单字段user_account
不显示.我已经尝试了一些我能在网上找到的东西,但我仍然无法解决问题所在 - 帮助将不胜感激!
我想你刚刚错过=
了f.fields_for
线上的标志.试试这样:
<%= f.fields_for :user_account, @user.user_account do |user_account| %>
这@user.user_account
不是必要的,但不会造成伤害.