4

AR#or_whereRails 3には次のようなものがありますか

User.where(cond1).or_where(cond2)

?

4

4 に答える 4

4

Railsにはそのような方法はありません。

WHERE 句で OR を実行する最も簡単な方法は、次のようにすることだと思います。

User.where("first_name = ? OR last_name = ?", params[:first_name], "Wilson")

Arel のメソッド (「or」メソッドがある) を学びたい場合は、https ://github.com/rails/arel#readme を参照してください。Arel と ActiveRecord を使用すると、次のように同じことができます。

User.where(User.arel_table[:first_name].eq(params[:first_name]).or(User.arel_table[:last_name].eq('Wilson')))
于 2010-12-17T17:17:44.913 に答える
2

User.where(cond1) | User.where(cond2)||を使用するだけで は ruby​​ によって予約されています。

于 2011-02-21T22:49:40.330 に答える
2

meta_whereを見ることができます。この gem を使用すると、SQL フラグメントにドロップすることなく、Ruby コードでより強力な ActiveRecord クエリ式を使用できます。

于 2010-12-17T17:21:54.940 に答える
0

それらをそのように連鎖させたい場合は、アレルを少し掘り下げる必要があります。この同様のSOの質問を参照してください。

于 2010-12-17T15:20:48.647 に答える