考虑这样的关系:
class BuyableComponent < ActiveRecord::Base
attr_accessible :cost
end
class CartItem < ActiveRecord::Base
attr_accessible :quantity
belongs_to :buyable_component
def total_cost
# This should be buyable_component.cost, but how do I make an alias so
# I can just use 'cost'?
cost * quantity
end
end
我有一个buyable_components
表和一个cart_items
表。与评论描述一样,我希望能够使用cart_item.cost
代替cart_item.buyable_component.cost
。 alias_attribute
似乎接近我的需要,但并不完全。
我正在寻找一种方法来为BuyableComponent
的所有属性声明这一点。
答案 0 :(得分:1)
尝试类似:
class CartItem < ActiveRecord::Base
delegate :cost, :to => :buyable_component
end
这应该可行,我想