我可以使用某种方法作为范围吗?例如。我创建了检查来自json的参数的方法,然后根据参数从数据库中查询一些数据并用作默认范围?
问问题
44 次
2 回答
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
尝试将您的普通方法变成类方法
高温高压
于 2012-11-13T09:30:56.410 回答
1
范围方法是类方法,应该返回范围。
您可以使用程序范围,因为您的范围会根据参数进行更改:
scope :colored, lambda { |color| where(:color => color) }
并像这样使用它:
Product.colored("red")
但问题是 Rails 不接受过程范围作为默认范围。
于 2012-11-13T10:23:49.837 回答