这可能是一个陈词滥调的问题,但我如何从有人关注的人的帖子中制作活动流?例如,如果我有一个安装了devise的rails应用程序,因此有一个User,Post和Relationship表,我将如何查询Post表以返回帖子来自用户所关注的人的记录(通过关系表) )?我已经尝试了谷歌的几种不同的方法,我似乎无法使它们适合。
答案 0 :(得分:1)
我构建了一个与getstream.io集成的gem(stream_rails);用于构建新闻订阅源和活动订阅源的托管API服务。 gem允许您将模型推送到Feed中,关注/取消关注Feed并附带视图助手。
免责声明:我是getstream.io的创始人之一,也是stream_rails gem的作者。
答案 1 :(得分:0)
我在没有测试的情况下写了这个,所以它可能不是100%正确。
has_many,通过与定义的源的关系应该适用于此模型。您需要为users_relationships
联接创建一个新表,如下所示:
create_table(:users_relationships) do |t|
t.integer user_id
t.integer relationships_id
end
现在,设置模型:
class Post < ActiveRecord::Base
belongs_to :users
end
class User < ActiveRecord::Base
has_many :posts
has_many :relationships, :through => :users_relationships, :source => :user
end
class Relationship < ActiveRecord::Base
has_and_belongs_to_many :user
end
但有人可能会有更明确的答案。相关表也可以成为单表继承的良好候选者。