0

デバイスを使用して、カスタム ページにネストされたフォームを作成しようとしています。

出てくるエラーは次のとおりです: nil:NilClass の undefined method `build_profile'

   <%= form_for("user", :url => user_registration_path) do |f| %>
      <%= f.email_field :email, :autofocus => true, :placeholder => 'E-mail Address' %>
      <%= f.password_field :password, :placeholder => 'Password' %>
      <%= f.password_field :password_confirmation, :placeholder => 'Password Confirmation' %>

      <% @user.build_profile %>

      <%= f.fields_for :profile do |profile_form| %>

      <%= profile_form.text_field :name, :placeholder => 'Name' %>
      <%= profile_form.text_field :address, :placeholder => 'Address' %>
      <%= profile_form.phone_field :phone, :placeholder => 'Phone (example: 0193284647)' %>

     <% end %>

     <p><%= f.submit "Sign up", :class=>'btn btn-primary' %> </p>
    <% end %>

編集(追加情報):

代わりに users_controller.rb を作成して @user = @user.build_profile を追加する必要がありますか?

それはデバイスに問題を引き起こしますか?

4

1 に答える 1

0

はい、あなたはしなければなりません

@user = @user.build_profile

registrations_controller.rb。そして、routes.rbindeviseメソッドでカスタマイズ コントローラーを記述します。

あなたはそうする必要があります

 class Registrations < Devise::RegistrationsController
  def new
    @user = User.new
    @user = @user.build_profile
    super 
  end
 end
于 2013-05-28T06:40:29.950 に答える