我希望在我的用户模型中有一个名为 feed 的方法,它返回两个表(讨论、交流)中的所有条目。
在 User.rb 中
def feed
SELECT * FROM discussions, exchanges GROUP BY created_at
end
这不起作用,我在 Rails 控制台中遇到问题
syntax error, unexpected ';', expecting '='
有人可以教我如何在这里编写 SQL 吗?基本上我想返回两个不同表中的条目并对其进行排序..
最佳答案
如果您想要实际的 ActiveRecord 对象,您可以尝试以下操作
def feed
exchanges = Exchange.all
discussions = Discussion.all
(exchanges + discussions).sort! { |a, b| a.created_at <=> b.created_at }
end
这是非常无效的,因为排序可以在 sql 中完成,但 ActiveRecord 无法实例化从不同表中选择的记录(您可以通过使用 STI 以某种方式覆盖它)
关于sql - 如何在 ruby 方法中编写 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257913/