2012-04-17 8 views
7

複数のパラメータに基づいてレコードを検索したい。しかし、これらのパラメータにはさまざまな選択肢があります。Rubyのレール - 複数のオプションを見つける方法?

As "SELECT something FROM mytable WHERE user_name="xyz" and status=("Active" OR "Deleted") 

これをどのようにしてレール文に変換しますか?

Person.find_by_user_name_and_status(user_name, status) # this doesn't take the OR operator 

答えて

9

私は今試すことができませんが、これを試しましたか?

Person.find_all_by_user_name_and_status(user_name, ["active", "deleted"]) 

上記動作しない場合、これは必要があります...

Person.where(:user_name => "xyz", :status => ["active", "deleted"]) 
# translates to: 
# "select * from persons where username = 'xyz' and status in ('active', 'deleted')" 

あなたはActive Recordのためのガイドレールに見てみる必要があります。http://guides.rubyonrails.org/active_record_querying.html

+0

感謝を!うまくいきました、私はfind_allの代わりに_all_byを見つけました。 OR演算子は単語を付けました。 –

+1

2番目の例は動作しません:Person.where(:user_name => "xyz")。ここで、(:status => ["active"、 "user"、 "active"、 "deleted" "deleted"]) –

関連する問題