Jac*_*oge 5 sql activerecord ruby-on-rails
我的应用程序中有两个模型,注释和亮点.它们的定义如下:
class Note < ActiveRecord::Base
belongs_to :user
end
class Highlight < ActiveRecord::Base
has_and_belongs_to_many :users
end
Run Code Online (Sandbox Code Playgroud)
现在,我想在同一个流中访问它们,按创建日期排序.我无法解决如何在ActiveRecord中执行此操作,因此我将此查询放在一起:
SELECT book_id, page, content, created_at FROM `highlights`
INNER JOIN `highlights_users` ON `highlights`.id = `highlights_users`.highlight_id
WHERE (`highlights_users`.user_id = 1 )
UNION SELECT book_id, page, content, created_at FROM notes
ORDER BY created_at DESC
Run Code Online (Sandbox Code Playgroud)
添加当然,它的工作原理,但感觉不太Rails-y.另外,我不知道如何判断哪些项目是注释,哪些项目是重点.另一种选择是分别获取音符流和高亮显示流,然后合并数组.这看起来也很笨拙,我觉得在某些地方必须有一个抽象的东西,我正在尝试做什么.
我在这里缺少一些关键的ActiveRecord功能吗?什么是最有效的方法?