2016-01-10 2 views
0

Я просмотрел все сообщения об этой довольно распространенной проблеме в stackoverflow и в другом месте, но я еще не смог найти ответ. По существу моя вложенная форма не строится и поэтому не отображается, когда я показываю страницу.rails 4 has_one вложенные формы, которые не строятся еще

Вот соответствующая часть моего контроллера пользователя, 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 fil е:

<div class="field"> 
    <%= f.label :email %><br> 
    <%= f.text_field :email %> 
</div> 
<div class="field"> 
    <%= f.label :password %><br> 
<%= f.text_field :password %> 
</div> 
<div class="field"> 
    <%= f.label :password_confirmation %><br> 
    <%= f.text_field :password_confirmation %> 
</div> 
<% f.fields_for :user_account, @user.user_account do |user_account| %> 
    <div class="field"> 
    <%= user_account.label :email %> 
    <%= user_account.text_field :email %> 
    </div> 
    <div class="field"> 
    <%= user_account.label :password %> 
    <%= user_account.text_field :password %> 
    </div> 
    <div class="field"> 
    <%= user_account.label :password_confirmation %> 
    <%= user_account.text_field :password_confirmation %> 
    </div> 
<% end %> 

первые три показывает, как ожидалось, но все три поля формы для user_account не отображается. Я пробовал все, что мог найти в Интернете, но я до сих пор не смог решить, в чем проблема - помощь будет оценена!

ответ

5

Я думаю, вы только что пропустили = знак в строке f.fields_for. Попробуйте следующее:

<%= f.fields_for :user_account, @user.user_account do |user_account| %> 

@user.user_account не является необходимым, но не наносит вреда.

+0

О, черт возьми, вы правы, теперь это работает! Спасибо большое! – chris

+0

Вам также не нужно объявлять 'class_name' для вашей ассоциации' user_account' –

Смежные вопросы