Ruby on rails 如何将多个资源合并到一个提要中?

Ruby on rails 如何将多个资源合并到一个提要中?,ruby-on-rails,ruby,methods,feed,Ruby On Rails,Ruby,Methods,Feed,我们如何将所有这些资源合并到一个提要中,最新提交的内容显示在顶部 user.rb 返回状态提要。 def供给 following\u id=从关系中选择following\u id 其中follower\u id=:user\u id {following_id}中的习惯.whereuser_id 或者user\u id=:user\u id,user\u id:id {following_id}中的Valuation.whereuser_id 或者user\u id=:user\u id,us

我们如何将所有这些资源合并到一个提要中,最新提交的内容显示在顶部

user.rb

返回状态提要。 def供给 following\u id=从关系中选择following\u id 其中follower\u id=:user\u id {following_id}中的习惯.whereuser_id 或者user\u id=:user\u id,user\u id:id {following_id}中的Valuation.whereuser_id 或者user\u id=:user\u id,user\u id:id {following_id}中的Goal.whereuser_id 或者user\u id=:user\u id,user\u id:id {following_id}中的Quantified.whereuser_id 或者user\u id=:user\u id,user\u id:id 终止 schema.rb ActiveRecord::Schema.defineversion:20150311202504 do 创建表身份验证,强制:true do | t| t、 整数用户id t、 字符串提供程序 t、 字符串uid t、 字符串索引 t、 字符串创建 t、 字符串销毁 t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 创建表日,强制:真do | t| t、 整数级\u id t、 整型用户id t、 缺少布尔值,默认值:false t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 创建表格目标,强制:真正的do | t| t、 字符串名 t、 截止日期 t、 布尔完成 t、 文本注释 t、 布尔私有提交 t、 整数用户id t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 添加索引目标[user\u id,created\u at],名称:index\u goals\u on\u user\u id\u和\u created\u at 添加索引目标,[用户id],名称:用户id上的索引目标 养成餐桌习惯,强迫:真正的做| t、 剩余日期时间 t、 整数级 t、 提交的文本 t、 日期时间开始日期 t、 字符串触发器 t、 字符串目标 t、 串奖 t、 文本注释 t、 布尔私有提交 t、 整数用户id t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 添加索引习惯[user\u id,created\u at],名称:index\u habits\u on\u user\u id\u和\u created\u at 添加索引习惯,[用户id],名称:在用户id上添加索引习惯 创建表格级别,强制:真do | t| t、 整数用户id t、 整型用户id t、 需要整数天 t、 已传递布尔值,默认值:false t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 创建表量化,力:真do | t| t、 字符串类别 t、 字符串度量 t、 文本注释 t、 布尔私有提交 t、 整数用户id t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 添加索引量化对象[user\u id,created\u at],名称:index\u quantifieds\u on\u user\u id\u和\u created\u at 添加索引量化对象[user\u id],名称:index\u quantifieds\u on\u user\u id 创建表关系,强制:true do | t| t、 整数跟随器id t、 跟在后面的整数\u id t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 添加索引关系[followed\u id],名称:在\u followed\u id上添加索引关系 添加索引关系[follower\u id,followerd\u id],名称:索引关系\u on\u follower\u id\u和\u followerd\u id,唯一:true 添加索引关系[follower\u id],名称:follower\u id上的索引关系 创建表格结果,强制:真do | t| t、 整数用户id t、 字符串结果值 t、 日期值 t、 整数量化的\u id t、 布尔好 t、 文本注释 t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 创建表格标记,强制:真do | t| t、 整数标记id t、 整型标记id t、 字符串标记类型 t、 整型标记器id t、 字符串标记器类型 t、 字符串上下文,限制:128 t、 日期时间创建于 终止 添加索引标记,[标记id,标记id,标记类型,上下文,标记id,标记类型],名称:标记id,唯一性:true 添加索引标记[taggable\u id,taggable\u类型,上下文],名称:在taggable\u id和taggable\u类型和上下文上添加索引 创建|表标记,强制:true do | t| t、 字符串名 t、 整数标记计数,默认值:0 终止 添加索引标签,[名称],名称:索引标签,唯一:true 创建表用户,强制:true do | t| t、 字符串名 t、 字符串电子邮件 t、 短信错过了十天 t、 文本未包含所有级别 t、 字符串提供程序 t、 字符串uid t、 字符串oauth_令牌 t、 日期时间oauth在到期 t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false t、 字符串密码摘要 t、 字符串记忆文摘 t、 布尔管理,默认值:false t、 字符串激活\u摘要 t、 布尔值已激活,默认值:false t、 日期时间在 t、 字符串存储 大学文摘 t、 日期时间重置发送到 终止 添加索引用户,[电子邮件],名称:索引用户\u电子邮件,唯一:true 创建表估价,强制:真do | t| t、 字符串名 t、 文本注释 t、 布尔私有提交 t、 整数用户id t、 在创建的日期时间,null:false t、 日期时间更新时间,null:false 终止 添加索引估值,[user\u id,created\u at],名称:index\u valuations\u on\u user\u id\u和\u created\u at 添加索引估值,[用户id],名称:用户id上的索引估值
end处理它的最简单方法是将集合与+:


如评论中所述,可能有更好的方法来聚合各种模型,但简单地使用+来加入集合就可以了。

要获得所需的结果,您可能需要创建一个单独的活动模型,将所有数据聚合到一个表中,以便轻松查询。查看演练。我会使用视图支持的模型,谢谢!我将您的代码添加到def提要端,并得到以下错误:ActiveRecord::StatementInvalid in PagesController主页SQLite3::SQLException:无此类列::选择习惯。*来自习惯,其中用户id在[]或用户id=1。你知道我们哪里出了问题吗?听起来习惯表没有用户id列。如果我删除习惯,那么它也会出现在评估中,等等。它们都注入了user\u id。这是查询中引用的唯一列,所以不知道它可能是什么。def feed cond=[user\u id in{following\u id}或user\u id=:user\u id,user\u id:id]Valuation.wherecond+Goal.wherecond+Quantified.wherecond end给出ActiveRecord::StatementInvalid in PagesControllerhome SQLite3::SQLException:无此类列::从用户id在[]或用户id=1的评估中选择评估。*
cond = ["user_id IN (#{following_ids}) OR user_id = :user_id", user_id: id]

Habit.where(cond) + Valuation.where(cond) + Goal.where(cond) + Quantified.where(cond)