簡體   English   中英

如何限制ruby on rails活動記錄where子句中的非空字段

[英]How to restrict a not empty field in ruby on rails active record where clause

我對 ruby​​ 很陌生,想限制沒有空的記錄:c字段值如下。

Foo.where(:a => "x", :b => "y", :c ?? "")

我的問題是我不知道是哪個運營商?? 我必須為此使用,或者是否存在用於該操作的運算符。

在我寫這個問題時,我遇到了ruby on rails api 文檔中where chains 如果我按如下方式編寫 where 子句,我會得到我想要的。

Foo.where(:a => "x", :b => "y").where.not(:c => "")

到目前為止很好, where 鏈給了我我想要的。 但是有沒有辦法使用運算符?? 像我的第一個示例一樣,將所有內容整合到一個簡單的 where 子句語句中?

要獲得有效的語法,您必須使用=>代替?? . 那是因為您將散列傳遞給where方法。

正如你提到的,你可以鏈接wherewhere.not 另一種解決方案是使用一個where如下所示:

Foo.where("a = ? and b = ? and c != ''", 'x', 'y')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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