admin

尝试创建自日期x以来的记录的Rails模型范围查询,使用Lambda吗?

sql

我想我想将模型级查找器与lambda结合使用。

named_scope :recent_snaps, lambda {|since_when| {:conditions=>{:created_at >= since_when}}}

但我不确定,也不确定语法是否正确,尤其是参数段,并且现在无法运行该应用程序以在控制台进行检查。

我不想使用find_by_sql或控制器查找,而是希望我的查找器在模型级别进行rspec测试。


阅读 210

收藏
2021-07-01

共1个答案

admin

如果您使用的是Rails
3(假设是给定问题的标签,那么您应该使用)scope而不是named_scopewhere而不是conditions。此外,您不能>=在哈希中使用。

您完成的范围应如下所示:

scope :recent_snaps, lambda { |since_when| where("created_at >= ?", since_when) }
2021-07-01