メソッドをスコープとして使用できますか? たとえば。どのパラメーターがjsonから来たかを確認するメソッドを作成し、次にパラメーターに応じてデータベースからいくつかのデータを照会し、デフォルトのスコープとして使用しますか?
質問する
44 次
2 に答える
1
スコープメソッドはクラスメソッドであり、スコープを返す必要があります。
スコープは引数に基づいて変更されるため、手続き型スコープを使用できます。
scope :colored, lambda { |color| where(:color => color) }
次のように使用します。
Product.colored("red")
しかし、問題は、Railsが手続き型スコープをデフォルトのスコープとして受け入れないことです。
于 2012-11-13T10:23:49.837 に答える
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
于 2012-11-13T09:30:56.410 に答える