gpt4 book ai didi

ruby-on-rails - 混合 ActiveRecord 查找条件

转载 作者:数据小太阳 更新时间:2023-10-29 06:47:28 26 4
gpt4 key购买 nike

我想根据 created_on >= some date AND name IN some list of names 的组合查找记录。

对于“>=”,我必须使用 sql 条件。对于“IN”,我必须使用条件散列,其中键是 :name,值是名称数组。

有没有办法将两者结合起来?

最佳答案

您可以在 rails 2.1 及更高版本中使用命名作用域

Class Test < ActiveRecord::Base
named_scope :created_after_2005, :conditions => "created_on > 2005-01-01"
named_scope :named_fred, :conditions => { :name => "fred"}
end

那么你可以做

Test.created_after_2005.named_fred

或者你可以给 named_scope 一个 lambda 来允许你传入参数

Class Test < ActiveRecord::Base
named_scope :created_after, lambda { |date| {:conditions => ["created_on > ?", date]} }
named_scope :named, lambda { |name| {:conditions => {:name => name}} }
end

那么你可以做

Test.created_after(Time.now-1.year).named("fred")

关于ruby-on-rails - 混合 ActiveRecord 查找条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/83674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com