我有一些模型看起来像这样:
class Basket
has_many :fruits, :dependent => :destroy
end
class Fruit
belongs_to :basket # do I need a polymorphic association here?
end
class Apple < Fruit
validate :crunchy
end
class Banana < Fruit
validate :peelable
end
水果是抽象的,因为你从来没有创建、更新等,水果,而是苹果或香蕉。这意味着我不能在我的视图中写入类似edit_fruit_path(@fruit)
的内容并自动解决它。
我应该在我的视图中写些什么,以便它总是解析为edit_apple_path(@fruit)
或edit_banana_path(@fruit)
?
这不是多态的,而是单表继承。
我假设您将继承ActiveRecord::Base到Fruit。
将列type
添加到您的水果表中。
现在您可以执行edit_fruit_path(@apple)
,它将成为Apple对象。