1. ホーム
  2. ruby-on-rails

[解決済み] Rails モデル find where not equal

2022-07-09 18:16:39

質問

データベースからnot equalの条件でレコードを探すにはどうしたらよいでしょうか? 私は今これを持っていますが、それを行うための派手なrails-speakの方法はありますか?

GroupUser.where('user_id != ?',me)

どのように解決するのですか?

Rails 4.xでは( http://edgeguides.rubyonrails.org/active_record_querying.html#not-conditions )

GroupUser.where.not(user_id: me)

Rails 3.xでは

GroupUser.where(GroupUser.arel_table[:user_id].not_eq(me))

長さを短くするために GroupUser.arel_table を変数に入れるか、モデル内部で使う場合は GroupUser を使用する場合、例えば scope を使用することができます。 arel_table[:user_id] の代わりに GroupUser.arel_table[:user_id]

Rails 4.0構文へのクレジット jbeardenの回答