1

レール用の名前付きスコープを作るのが大好きです。しかし、私はややピクルスに出くわしました。次のような結合に名前付きスコープを使用するのはかなり快適です。

named_scope :foo, :joins => :bar, :conditions => "bar_attribute = 'something'"

ここで、barテーブルの外部キーを含むbazというテーブルがあると仮定します。私はこのようなものが必要です:

named_scope :foo, :joins => (:bar => :baz), :conditions => "bar.id = baz.bar_id AND baz_attribute = 'something_else'"

これはどのくらい可能ですか?

ありがとう

4

2 に答える 2

3

あなたはそれほど遠くありません。これはあなたのために働くはずです:

named_scope: foo, :joins => {:bar => :baz}, :conditions => "bazes.your_attr = 'something_else'"

これは、baz の複数形が bazes であることを前提としています。bar.id を bazes.bar_id に結合する条件を指定する必要はありません。:joins から推測されます。

于 2009-07-27T16:53:45.730 に答える
0

has_many :through => ...たぶん、関係と組み合わせてこれを行うことができます。

于 2009-07-27T16:19:33.053 に答える