[英]Querying in Rails with multiple hash conditions
我指的是這里描述的哈希條件。 您可以使用多種類型的哈希條件嗎? 喜歡平等和子集? 我試過了,它給了我一個語法錯誤:
@colleges = College.where(category: "#{@university_type}" and "us_news_ranking < #{@rank_low}").first
可以這樣做,還是我的代碼錯了?
可以這樣做,還是我的代碼錯了?
您的代碼是錯誤的。 and
沒有參與其中; 如果您需要幾個條件,請向where
提供幾個鍵/值。 在這種情況下,您需要兩個where
調用-一個用於相等條件,一個用於小於條件。
您也永遠不要直接將值插值到字符串中。 使用占位符,以便ActiveRecord可以轉義它們並防止SQL注入。
@colleges = College.where(category: @university_type).where("us_news_ranking < ?", @rank_low).first
您可以結合兩個條件:
@colleges = College.where("category = ? AND us_news_ranking < ?",
@university_type,
@rank_low).first
另外,有時會傾向於使用哈希變量:
@colleges = College.where("category = :type AND us_news_ranking < :rank",
type: @university_type,
rank: @rank_low).first
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.