从日期x开始尝试为记录创建rails模型范围查询,使用lambda?

Mic*_*ant 2 ruby sql model ruby-on-rails ruby-on-rails-3

我想我会想要使用模型级查找器和lambda.

named_scope :recent_snaps, lambda {|since_when| {:conditions=>{:created_at >= since_when}}}
Run Code Online (Sandbox Code Playgroud)

但我不确定,如果我的语法正确,特别是参数片,并且无法立即运行应用程序来检查控制台.

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

Ale*_*tie 6

如果你on Rails的3,你应该使用(因为你可能是,考虑到问题的标签)scope,而不是named_scopewhere,而不是conditions.此外,您不能>=在哈希中使用.

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

scope :recent_snaps, lambda { |since_when| where("created_at >= ?", since_when) }
Run Code Online (Sandbox Code Playgroud)