我可以使用某种方法作为范围吗?对于前者我创建的方法检查params来自json,然后根据params查询数据库中的一些数据并用作默认范围?
答案 0 :(得分:1)
我猜问题是,正常的方法是实例方法,其中范围方法作为类方法
class MyClass
def self.klass_method
end
def ins_method
end
end
Myclass.klass_method => will work
Myclass.ins_method => will not work
Myclass.new.ins_method => will work
尝试将您的常规方法转换为类方法
HTH
答案 1 :(得分:1)
范围方法是类方法,应返回范围。
您可以使用过程范围,因为您的范围会根据参数更改:
scope :colored, lambda { |color| where(:color => color) }
并使用它:
Product.colored("red")
但问题是Rails不接受程序范围作为默认范围。