わかりました。試してみますが、ここではあまり多くのコードを使用していません。
私はここに3つのモデルを見ます:
最初の2つは単純なモデルで、いくつかの属性があります。3つ目は、2つの間の関係であり、:m関係になります。したがって、ここでは、has-many-throughの関係を使用するのが最適です。
class ProjectAdmin < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
class User < ActiveRecord::Base
has_many :project_admins
has_many :projects, :through => :project_admins
end
class Project < ActiveRecord::Base
has_many :project_admins
has_many :admins, :through => :project_admins
end
もちろん、移行によって3つのテーブルを追加で作成し、後でProjectUser
モデルとして名前が付けられたプロジェクトユーザー用の同様の関係を追加する必要があります。少なくとも、関係についてのレールガイドのセクション「has-many:through」をご覧ください。
作成者をプロジェクトに追加するには、これは2つの間の1対1の関係である必要があるため、次の条件を満たしている必要があります。
class Project
has_one :creator, :class_name => "User"
end
(そしてもちろんcreator_id
移行中)