我正在使用Rails,我想进行查询。我想我只是一个大脑放屁,但也许不是。我有一个数据进入我的控制器,如下所示。
units = [
{:name=>"barbarian", :level=>5, :count=>10},
{:name=>"archer", :level=>6, :count=>10}
]
我的模型包含与name
和level
相对应的数据。我想创建一个类似以下的查询......
Unit.where('name = ? AND level = ? OR name = ? AND level = ?', "barbarian", 5, "archer", 6)
哪个会从Unit
模型中产生两条记录。但我只是想更聪明一点,因为我在units
数组中有大约30个项目。这可能吗?如果没有,还有其他选择吗?
答案 0 :(得分:0)
我可能会做这样的事情
clause = units.map { 'name = ? AND level = ?' }.join(' OR ')
values = units.map {|unit| [unit[:name], unit[:level]] }
conditions = [clause, values].flatten
# => ["name = ? AND level = ? OR name = ? AND level = ?", "barbarian", 5, "archer", 6]
现在你可以使用像这样的查询
了Unit.where(conditions)
答案 1 :(得分:0)
我们可以尝试通过哈希输入进行查询,如下所示:
{{1}}