0

チームとユーザーの 2 つのモデルがあります。

各ユーザーはチームを持つことができ、各チームには多くのユーザーがいます。しかし、team.members で team.users を呼び出したいです。class_name でこれを行うことができましたが、Team by User にもアクセスする必要があります。つまり、user.team は、ユーザーが所属するチームを返す必要があります。これが私が思いついたものです...

私のモデルは次のとおりです。

class Team < ActiveRecord::Base
  has_many :members, foreign_key: 'id', class_name: 'User', :inverse_of => :team
end

class User < ActiveRecord::Base
  belongs_to :team, :inverse_of => :user
end

( User モデル内で :inverse_of => :members も試しました。)

4

1 に答える 1

1

:inverse_of少なくとも使用する場合は、権利があります:inverse_of => :members。ここでの問題は外部キーです。foreign_key他のテーブルのキー列の名前を指定するため、あなたの場合はユーザーテーブルで指定します。just を指定するidと、ユーザーの ID が使用されます。外部キーを指定せずにデフォルトのままにしておきますteam_id

class Team < ActiveRecord::Base
  has_many :members, :class_name => 'User', :inverse_of => :team
end

class User < ActiveRecord::Base
  belongs_to :team, :inverse_of => :members
end

また、ruby 1.8 のハッシュ構文 ( :key => 'value') と ruby​​ 1.9 の新しい構文( ) を混在させないようにしてくださいkey: 'value'

于 2013-04-22T07:11:24.447 に答える