4

この問題に関する他の質問を見てきましたが、これまでのところ、答えはうまくいきませんでした。ユーザーを登録し、同時に組織を作成するフォームを作成しようとしています。ユーザーと組織は、割り当てテーブルを介して関連付けられます。

ここに私のフォームがあります:

= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|

  = devise_error_messages!

  = f.fields_for :organizations do |f|

    = f.label :name
    = f.text_field :name

  = f.label :email
  = f.email_field :email

  = f.label :password
  = f.password_field :password

  = f.label :password_confirmation
  = f.password_field :password_confirmation

私の登録コントローラー:

class Users::RegistrationsController < Devise::RegistrationsController
  def new
    @user = User.new
    @user.organizations.build
  end

  def create
    super
  end

  def update
    super
  end
end

私の組織モデル:

class Organization < ActiveRecord::Base
  has_many :organization_assignments
  has_many :users, :through => :organization_assignments

  attr_accessible :name
end

そして私のユーザーモデル:

class User < ActiveRecord::Base

  has_many :organization_assignments
  has_many :organizations, :through => :organization_assignments

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  accepts_nested_attributes_for :organizations

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :organization_attributes
  # attr_accessible :title, :body

end

私が得ている正確なエラーは次のとおりです。

保護された属性を一括割り当てできません: organization_attributes

4

1 に答える 1

9

モデルに追加する:organizations_attributes必要attr_accessibleがあります。User

于 2012-07-10T00:35:54.870 に答える