gpt4 book ai didi

ruby-on-rails - 有没有办法将命名范围组合成一个新的命名范围?

转载 作者:行者123 更新时间:2023-12-04 10:33:25 24 4
gpt4 key购买 nike

我有

class Foo < ActiveRecord::Base
named_scope :a, lambda { |a| :conditions => { :a => a } }
named_scope :b, lambda { |b| :conditions => { :b => b } }
end

我想要
class Foo < ActiveRecord::Base
named_scope :ab, lambda { |a,b| :conditions => { :a => a, :b => b } }
end

但我更愿意以干燥的方式进行。我可以通过使用获得相同的效果
 Foo.a(something).b(something_else)

但它不是特别可爱。

最佳答案

至少从 3.2 开始有一个聪明的解决方案:

scope :optional, ->() {where(option: true)}
scope :accepted, ->() {where(accepted: true)}
scope :optional_and_accepted, ->() { self.optional.merge(self.accepted) }

关于ruby-on-rails - 有没有办法将命名范围组合成一个新的命名范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29011/

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