2012-08-05 38 views
0

这可能是一个老生常谈的问题,但是我如何使某人的帖子中的活动流出来?例如,如果我安装了一个安装了devise的rails应用程序,以便有用户,发布和关系表,那么我将如何查询Post表以返回帖子来自用户已遵循的用户的记录(通过关系表)?我已经尝试了谷歌的几种不同的方法,我似乎无法让它们中的任何一种适合。创建一个活动流Rails

+1

你尝试了哪些方法,你不能适合什么? – Nobita 2012-08-05 02:40:31

回答

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 

有人可能有一个比较清晰的答案,但。关联表也可能成为单表继承的良好候选者。

+0

对。我建立的关系几乎就是这样。但是,如何让我关注的用户发布的实际查询是我的问题? – user1152706 2012-08-05 14:40:16

+0

无论如何,谢谢。上面的例子促使我清理自己的模型。 – user1152706 2012-08-05 14:40:41

1

我建立了一个与getstream.io集成的gem(stream_rails);托管API服务来构建新闻提要和活动提要。该宝石可让您将模型推送到Feed中,关注/取消关注Feed并附带视图助手。

声明:我是getstream.io的创始人之一,也是stream_rails gem的作者。