0

我正在尝试使用设计在自定义页面中构建嵌套表单。

出现的错误是: undefined method `build_profile' for nil:NilClass

   <%= 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.rb并且,在devise方法中提到自定义控制器。

你应该这样

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