0

メソッドをスコープとして使用できますか? たとえば。どのパラメーターがjsonから来たかを確認するメソッドを作成し、次にパラメーターに応じてデータベースからいくつかのデータを照会し、デフォルトのスコープとして使用しますか?

4

2 に答える 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 に答える