Activerecord关系

时间:2013-02-16 15:22:22

标签: ruby-on-rails rails-activerecord

我的应用程序中有以下模块..

class User < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :user
end

我的要求是用户可以订阅很多帖子,我想使用has_many :through关系,因为我希望在连接表中有一个额外的属性subscription_type。 用户与帖子有很多关系。

请告诉我最好的方法。

1 个答案:

答案 0 :(得分: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