0
请帮我避免这个语法错误如何在ruby中解决这个语法错误
我想选择带有子项的第一个类别。
@categories=Category.where(categories: {id:[1]} && categories: {parent_id:[1]})
请帮我避免这个语法错误如何在ruby中解决这个语法错误
我想选择带有子项的第一个类别。
@categories=Category.where(categories: {id:[1]} && categories: {parent_id:[1]})
为什么不这样做呢?
@categories = Category.where(id: [1], parent_id: [1])
这会给你所有id = 1
和parent_id = 1
的类别。 请注意,除非您想包含ID数组或父母ID,否则您不需要[]
。如果你想为一个ID只有一个父ID,你可以这样做:
@categories = Category.where(id: 1, parent_id: 1)
假设你想找到与分类记录id = 1和PARENT_ID = 1 查询应该是:
@category = Category.where(id:1,parent_id:1).first
谢谢你的作品,我试过了。如何通过或条件编写 – SreRoR
在Rails 5中(尚未发布,即将推出),我们将有一个特性,我们可以通过'where'子句链接'或',像这样:'@categories = Category.where(id:1).or(Category.where(parent_id:1)' 但是,这不是Rails 4的一部分。有关更多示例,请参阅此文章:http://stackoverflow.com/questions/ 32753168/rails-5-activerecord-or-query –
如果你使用Rails 4.2,那么你可以试试这个gem:https://github.com/Eric-Guo/where-or 然后你就可以使用那个或者,你总是可以使用SQL来使用OR来编写查询 –