簡體   English   中英

在Rails中使用多個哈希條件進行查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM