私は数時間このままで立ち往生しています。それは速い解決策かもしれませんが、私の脳は今過熱されています。さて、それはここにあります。Rails 2の特定の項目を含まない多対多リレーションシップから特定のレコードを選択するにはどうすればよいですか?
私は、以下のように互いに多対多の関係を持つSessionとSessionTypeモデルを持っています。私が欲しいもの
class Session < ActiveRecord::Base
...
has_and_belongs_to_many :session_types
...
end
class SessionType < ActiveRecord::Base
...
has_and_belongs_to_many :sessions
...
end
は、上記のクエリは、まだ私に与えますので、それは私のために動作しません、。例えば、特定のsession_typeが含まれていないセッションを取得することです
Session.find(:all, :joins => [:session_types], :conditions => ["session_types.id <> 44"])
多対多リレーションシップの性質のため、多くの関連でsession_types.id "44"を持つセッション。
また、次のmysqlコードもうまくいきません。
select sessions.* from sessions
INNER JOIN `session_types_sessions` ON `session_types_sessions`.session_id = `sessions`.id
WHERE ( session_types_sessions.session_type_id NOT IN (44))
GROUP BY sessions.id
助けてください。
ありがとうございました。
はい、私はいくつかのシンタックスの変更でうまく動作します。 session_types_44 =セッション。(:all、:conditions => {: "session_types.id" => 44})。 ) "、session_types_44.collect {| s | s.id}]) –