0

次の関係船の関連付けを定義するのに混乱しています。

1.ユーザーは複数の会社を持つことができます。

2.会社には多くのチームメンバーユーザーがいます

3.チームメンバーは、所有者、投資家、アドバイザーなどのさまざまな役割を持つことができます。

これの関連付けをさせてください。現在、私はユーザーと会社のモデルを持っています。

4

2 に答える 2

0

あなたが使用した場合:

class Company < ActiveRecord::Base
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :companies
  has_many :roles
end

class Role < ActiveRecord::Base
  belongs_to :user
end
于 2012-09-18T01:16:50.200 に答える
-1

team_members を動的に宣言する場合: 役割モデル (diffrent_role) で「役割」を静的に宣言します。

 class User < ActiveRecord::Base
      has_many :companies
      has_many :roles
    end

    class Company < ActiveRecord::Base
      belongs_to :user
      has_many :team_members, :class_name => "User", :finder_sql => 'SELECT u.* FROM users u INNER JOIN roles r ON u.company_id = r.id WHERE r.diffrent_role = "member";'

    end

    class Role < ActiveRecord::Base
      belongs_to :user
    end
于 2012-09-10T16:00:38.380 に答える