2
我有一個用戶表是這樣的:如何找到2條記錄不條件在rails where子句中?
--------------------
| id | name | role |
--------------------
| ...| ... | ... |
--------------------
角色列有3種角色:管理員,買家和用戶。下面約定:
role != 'buyer' and role != 'admin' ==> User is a normal user
(這意味着角色可以有值:無「」或曼尼不同的價值觀,不同的「買家」和「管理員」)
role = 'buyer' ==> User is a buyer
role = 'admin' ==> User is an admin
現在,我想找到所有的用戶在所有3個場景:
@admins = User.where(role: 'admin').all (work fine!)
@buyers = User.where(role: 'buyer').all (work fine!)
一切正常的用戶,但這似乎不工作:
@users = User.where("role!='buyer' and role!='admin'").all (not working!)
任何人都可以幫我找到所有的普通用戶嗎?提前致謝!
我終於發現了問題,問題是,當角色列的值是零,我們無法找到該記錄。但是,除了nil以外的角色列的值,我們可以找到它。 –
如果因爲'''User.where.not(role:['buyer','admin'])'''等於'''WHERE角色!= buyer而存在nil值,Emu的解決方案就不會工作AND角色!= admin''',因爲'''NULL!= any_string'''是虛假的'''unknown'''任何有nil值的記錄都不會被返回 – user3409950
@ user3409950我必須改變我的代碼以防止角色列中的無值,但無論如何Emu的解決方案幫助我的代碼看起來更漂亮:)) –