如何在视图中处理简单的多态关联?

时间:2011-06-11 17:04:10

标签: ruby-on-rails-3 single-table-inheritance

我有一些看起来像这样的模型:

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)

1 个答案:

答案 0 :(得分:0)

这不是多态的,而是单表继承。

我假设您将继承ActiveRecord :: Base到Fruit。

将列type添加到水果表中。

现在你可以edit_fruit_path(@apple),它将是Apple对象。