在 Rails 应用程序中使用 Squeel,我有一个条件哈希:
{'trans' => 'manual'}
我最终计划移动到一个数组中......所以我也可以有一个操作员分配。
[[field,operator,value][field,operator,value]]
我想使用一个模型方法,现在我省略了运算符,我只是在尝试 == 让它工作......但是,我下面的内容不起作用。
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"