0

これを行う最善の方法を見つけるのに苦労しています。ユーザー モデルとトーナメント モデルがあり、「followed_tournaments」と呼ばれるこれら 2 つのモデル間の has_many :through 関係をセットアップして、ユーザーがトーナメントをフォローできるようにします。そのため、ユーザー モデルには has_many :tournaments があり、トーナメント モデルには has_many :users があるため、トーナメントには多くのフォロワーがいて、ユーザーは多くのトーナメントをフォローできます。

別の habtm または has_many :through 関係を設定して、ユーザーがトーナメントへの「貢献者」と見なされるようにしたいと思います。これは、既に設定したものとは完全に別の関係です。トーナメントには何人でも貢献者がいて、ユーザーは多くのトーナメントに貢献してほしいです。

これを実装するための最良の方法は何ですか?

4

1 に答える 1

0

sourceまたはを使用するclass_name

class Tournament < ActiveRecord::Base
  has_many :users # ... whatever

  has_many :contributions

  # using class_name
  has_many :contributors, :through => :contributions

  # using source
  has_many :contributors, :through => :contributions, :source => :user
end

class Contribution < ActiveRecord::Base
  belongs_to :tournament

  # using class_name
  belongs_to :contributor, :class_name => 'User'

  # using source
  belongs_to :user
end
于 2012-08-09T05:15:53.753 に答える