ActiveScaffold:如何为多态关联创建下拉选择?

时间:2010-03-03 07:41:49

标签: ruby-on-rails select activescaffold polymorphism drop-down-menu

我正在尝试创建一个与ActiveScaffold进行多态关联的下拉选择框。

我有:

class Award
  belongs_to :sponsorship, :polymorphic => :true
end

class Organization
  has_many :awards, :as => :sponsorship
end

class Individual
  has_many :awards, :as => :sponsorship
end

尝试在awards_controller中创建选择下拉框时 用:

config.columns[:sponsorship].form_ui = :select

我收到以下错误:

  

::的ActionView TemplateError   (未初始化的常数   奖::赞助)

我不确定这是不是我做得不好或者我正在尝试的事情 完成不直接支持AS。

真的很感激一些建议。

3 个答案:

答案 0 :(得分:0)

我对ActiveScaffold并不熟悉......但是,他们的文档中的快速传递揭示了一个关于has_many的部分:我熟悉ActiveRecords ...因此对于它的价值,你的多态是否有可能关联应该这样写?:

class Organization
  has_many :awards, :through => :sponsorship
end

class Individual
  has_many :awards, :through => :sponsorship
end

答案 1 :(得分:0)

我不确定你要做什么,但是当说没有“赞助商”时,确实是真的。

当使用多态时,rails会自动创建两个列,在您的情况下:* sponsorship_id *和* sponsorship_type *。

您可能想要使用其中一种。

但是,我不熟悉ActiveScaffold form_ui,所以我无法帮助你。

答案 2 :(得分:0)

我收到了这个错误,但前提是我有一个没有赞助的奖励实例(我的名字不同......)。所以可能OP和后续海报已经过了这个,但是对于未来的读者,请确保在使用与active_scaffold的多态关联时不创建依赖模型的实例...