0

モデルに複数の名前付きスコープがあります。名前は異なりますが、パラメーターは同じです。さて、条件に基づいてこれらの名前付きスコープを使用するときは、パラメーター全体を常に複製する必要があります。それを避ける方法はありますか?

例: 私の言うところの製品モデル:

named_scope :example1, lambda{ |parameter1, parameter2|{
 //some code here//
 }
}

named_scope :example2, lambda{ |parameter1, parameter2|{
 //some code here//
 }
}

named_scope :example3, lambda{ |parameter1, parameter2|{
 //some code here//
 }
}

今、条件に応じて使いたい

if(condition)

Product.example1(param1, param2)

elsif (condition)

Product.example2(param1, param2)

else

Product.example3(param1, param2)

ルビーでこのように呼ぶ方法はありますか?

variable = example1 //I can get the name of named_scope here

Product.variable(param1, param2). //The relevant named_scope should be used.
4

1 に答える 1

1

Object#sendを使用してProductにメッセージを送信できます(メソッドの呼び出しとも呼ばれます)。

Product.send(variable,param1,param2)
于 2012-07-26T07:46:45.757 に答える