2017-01-13 2 views
0

ユーザーが存在するかどうかを確認する必要があります。ruby​​を使用したORオプションが存在しますか? "

これは動作します:

User.exists?(id:123) => true 

IDは、単に "name_parameterized" 欄常に使用することはできませんが。だから、このようなことをする方法:

User.exists?("name_parameterized='peter-parker' OR id=123") 

ありがとう。

答えて

2

を使用しますが、多くの場合、より高速なインデックス化によるものである二つの異なるクエリでこれを行うことができます動作します:

User.exists?(name_parameterized: 'peter-parker') or User.exists?(id: 123) 

クエリオプティマイザの視点から見ると、クエリを単一のクエリにまとめることもできます。

User.where(name_parameterized: 'peter-parker').or.where(id: 123).any? 
1
User.where(id: 123).or(User.where(name: 'peter-parker')).exists? 

更新 これは、レールに古いバージョン5.は

User.where('id=? OR name=?', 123, 'peter-parker').exists? 
+2

これはRails 5以上でのみ動作します。 – Santhosh

+0

指してくれてありがとう –

関連する問題