ruby-on-rails-3.1 - 如何创建一个跨越多态关联的作用域?

  显示原文与译文双语对照的内容
0 0

我有这些模型( psuedocode ):


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(...)

我如何构造这样的范围? ( 还是有另一种技术我应该使用

时间: 原作者:

0 0

你所做的关联不能一起工作。 我想你可能在寻找这样的东西:


class Order
 has_many :line_items
 has_many :tiles, :through => :line_items, :source => :purchasable, :source_type =>"Tile"
. . .
end

class LineItem
 belongs_to :order
 belongs_to :purchasable, :polymorphic => true
. . .
end

class Tile
 has_many :line_items, :as => :purchasable
. . .
end

...