1
は、私はこれらのモデル(擬似コード)を持つ:ポリモーフィックな関連付けを走査するスコープを作成するにはどうすればよいですか?
class Order
has_many :line_items
end
class LineItem
belongs_to :purchasable, :polymorphic => true
belongs_to :order
end
class Tile
has_one :line_item, :as => :purchasable
end
は、私は私がオーダーからタイルにアクセスすることを可能にする範囲を作りたいです。 Order#tiles
のようなもの、私はコントローラにこのようなことを行うことができるように:
my_order.tiles.new(...)
my_order.tiles.find(params[:id]).update_attributes(...)
どのように私は、このような範囲を構築することができますか? (または、私が使用すべき別のテクニックがありますか?)
実際のコードが反映されるように少し修正しました。私はいくつかの間違いがあった。私のリビジョンに基づいて、あなたは望みの範囲を作成する方法を知っていますか? –
はい、私の答えから 'has_many:tiles、:through =>:line_items、:source =>:purchaseasable、:source_type =>「Tile」という行を見てください。それはあなたが望むことをすることができます。 –
ああ、素晴らしい!私はそれがそれほど単純ではなかったことを理解していません –