0

私のアプリケーションには次のモデルがあります。

class User < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :user
end

私の要件は、ユーザーが多くの投稿をサブスクライブできることであり、テーブルの結合にhas_many :through追加の属性が必要なため、リレーションシップを使用したいと考えています。subscription_typeユーザーは投稿と多対多の関係を持っています。

これを行うための最良の方法を教えてください。

4

1 に答える 1

2

非常に簡単です:

class User < ActiveRecord::Base
  has_many :subscriptions
  has_many :posts, :trough => :subscriptions
end

class Subscription< ActiveRecord::Base
  belongs_to :user
  belongs_to :post

  # add subscription_type to db columns
  # also user_id and post_id
end

class Post < ActiveRecord::Base
  has_many :subscriptions
  has_many :users, :trough => :subscriptions
end
于 2013-02-16T15:27:41.157 に答える