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

[解決済み】ActiveRecord/RailsでNOT INクエリを表現する方法とは?

2022-04-06 03:14:37

質問

を伴わない簡単な解決策があればいいのですが。 find_by_sql そうでない場合は、そのようにするしかないでしょう。

私が見つけたのは この記事 を参照しています。

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })

と同じです。

SELECT * FROM topics WHERE forum_id IN (<@forum ids>)

をする方法はないかと考えています。 NOT IN というように、それを使って。

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)

解決方法は?

Rails 4+です。

Article.where.not(title: ['Rails 3', 'Rails 5']) 

Rails 3:

Topic.where('id NOT IN (?)', Array.wrap(actions))

ここで actions を持つ配列です。 [1,2,3,4,5]