私はRubyの初心者であり、 has_many :through 関連付けに問題があります。私のシステムは現在、Authlogic と Declarative_auth でセットアップされています。ユーザーをファイルすると、送信時に渡されていることが示されていても、ユーザーテーブルに role_id が挿入されないことを除いて、すべてが正しく作成されます。また、id を割り当てテーブルに保存しません。まず最初に、users テーブルに role_id が必要なのかという疑問があると思います。次に、割り当てテーブルの user_id および role_id フィールドをforeign_keyとして宣言する必要がありますか、それともレールはこれを自動的に処理しますか? これについて何か助けていただければ幸いです。
class User < ActiveRecord::Base
acts_as_authentic
has_many :assignments
has_many :roles, :through => :assignments
def role_symbols
roles.map do |role|
role.name.underscore.to_sym
end
end
end
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignments
end
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
end