sql - 如何在 ruby​​ 方法中编写 SQL?

标签 sql ruby-on-rails ruby-on-rails-3

我希望在我的用户模型中有一个名为 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/

相关文章:

sql - 有效地复制 PostgreSQL 表中的一些行

MySQL如何填充范围内的缺失日期?

ruby-on-rails - 如何在 ActiveRecord 中指定为accepts_nested_attributes_for 设置的字段

ruby-on-rails - 我怎样才能干燥我的 Controller Action ?

ruby-on-rails - 工具提示截断

sql - 输出始终为 1

sql - 函数结果的列标题

node.js - 在Alpine Linux上安装Node.js 10 + NPM

ruby-on-rails - before_validation,在 : :save vs before_save

ruby-on-rails - 创建新的 Rails 应用程序时,为什么会出现 Gemfile.lock 文件而不运行 bundle 安装?