1

Devise のカスタム登録のフォームに問題があります。このフォームには、フォーム上で同時に作成するユーザー モデルとビジネス モデルの両方の情報が必要です。これが複数ステップの登録フォームであってはならないことが重要です。要件の一部として、ユーザー モデルとビジネス モデルの両方を同時に記入する必要があります。

私は次のモデルを持っています:

user.rb
class User < ActiveRecord::Base
  has_many :businessusers, :include => :business
  has_many :businesses, :through => :businessusers
  accepts_nested_attributes_for :businessusers
  attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :role, :businessusers

business.rb
class Business < ActiveRecord::Base
  has_many :businessusers
  has_many :users, :through => :businessusers

businessuser.rb
class Businessuser < ActiveRecord::Base
  belongs_to :business
  belongs_to :user
end

businessusers migration
create_table :businessusers do |t|
  t.integer :user_id
  t.integer :business_id
end

私の登録フォームには、次のコードがあります。

Business Information
<br>
<%= f.fields_for :businessusers do |business_form| %>
<%= business_form.input :name %>
<%= business_form.input :address_line1 %>
<%= business_form.input :address_line2 %>
<%= business_form.input :city %>

最後に、ここに私のコントローラーがあります: custom_registration_controller.rb

def create
@user=User.new(params[:user])
@business = @user.businesses.build(params[:business]) unless params[:business]  [:name].blank?
end

編集:一括割り当て属性の問題は解決しましたが、別の問題があります。

誰かが私が間違っている場所を知っていますか? 以前は、businessusers テーブルで id を無効にしていました。しかし、これにより、テーブルにプライマリ ID が必要であるというエラーが表示されました。そのため、 field を許可する:idと、フォームにビジネス フィールドが含まれなくなります。

ありがとう!

4

0 に答える 0