【发布时间】:2011-04-01 00:42:47
【问题描述】:
我对 Rails 很陌生。谢谢你看看这个。我试图在 activerecord 中创建一个子查询。这是我的控制器中的内容。
@vote_time = Submission.select("submissions.updated_at").where(:chosen => true).first
@submissions = Submission.where(["submissions.created_at > ?", @vote_time])
我想这大概就是 sql 中的样子。
select * from submissions where submissions.created_at < (select submissions.updated_at from submissions where chosen = true limit 1)
每当我运行 activerecord 搜索时,@vote_time 都会被插入为空。我只是在叫错树吗?您不能将变量传递给数组条件吗?非常感谢您的宝贵时间。
【问题讨论】:
-
您正在调用#first,它返回第一个提交。如果你得到 nil,那么你没有第一个查询返回的任何提交。
-
当您进行选择时,它不会返回该列的值,它将返回一个仅填充了 updated_at 属性的提交实例。如果您在数据库中有任何符合条件的记录,您应该可以使用@vote_time.updated_at 来访问日期
标签: ruby-on-rails ruby-on-rails-3 sqlite activerecord