Rails アプリで Squeel を使用すると、条件のハッシュが得られます。
{'trans' => 'manual'}
最終的には配列に移動する予定です...そのため、演算子の割り当てもできます。
[[field,operator,value][field,operator,value]]
Model メソッドを使用したいのですが、今のところ演算子を省略していますが、これを機能させるために == を試みているだけです...しかし、以下にあるものは機能しません。
def self.with_conditions(conditions)
joins{car}.where do
conditions.map {|key,value| (key==value) }.inject(:&)
end
end
私もこれを試しました:
def self.with_conditions(conditions)
joins{car}.where do
query = nil
conditions.each do |key, value|
q = (key == value)
if query
query &= q
else
query = q
end
end
query
end
end
では、これを == で動作させるにはどうすればよいでしょうか。また、最終的にこれを動的演算子でも動作させるにはどうすればよいでしょうか? ありがとう
コンソールでは、私の SQL は私の条件を読み込んでいません... 例:
コンソールで:
> Timeslip.with_conditions({'car.year'=>'1991'})
SELECT "timeslips".* FROM "timeslips" INNER JOIN "cars" ON "cars"."id" = "timeslips"."car_id"