多态关联的形式

时间:2013-10-29 15:28:12

标签: ruby-on-rails simple-form

我想知道如何为多态关联准备工作表单(使用simple_form)。使用这些模型:

class Poster < ActiveRecord::Base
  belongs_to :kind, polymorphic: true      
end

class Category < ActiveRecord::Base
  has_many :posters, as: :kind
  has_many :subcategories, dependent: :destroy
  accepts_nested_attributes_for :subcategories

  def self.with_subcategories
    self.all.map { |category| category.subcategories }
  end  
end

class Subcategory < ActiveRecord::Base
  belongs_to :category
  has_many :posters, as: :kind
end

我希望用户能够创建一张海报,并为其分配一个现有的类别或子类别。在数据库(海报)我有kind_id和kind_type,但我不知道如何建立一个正确的形式。我试过这样的事情(只是用子类进行测试)但它甚至没有接近正确:

= simple_form_for @poster do |f|
    = f.input :description
    = f.input :title
    = f.input :kind, collection: Category.with_subcategories
    = f.submit

有关如何正确操作的任何线索?

0 个答案:

没有答案