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來編寫查詢 –