7

我正在尝试为与 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(未初始化常量 Award::Sponsorship)

我不确定这是我做的不对还是我想要完成的事情在 AS 中没有直接支持。

非常感谢一些建议。

4

3 回答 3

0

我不确定您要做什么,但是当说没有“:赞助”时,rails确实是正确的。

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

您可能想使用其中之一。

但是,我对 ActiveScaffold form_ui 不熟悉,因此无法进一步帮助您。

于 2011-01-31T20:43:30.730 回答
0

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

于 2011-11-30T13:21:50.230 回答
0

我对 ActiveScaffold 不熟悉...但是,他们文档中的快速通过揭示了一个关于 has_many 的部分:我从 ActiveRecords 熟悉的部分...所以对于它的价值,您的多态关联是否应该写成这样?:

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

class Individual
  has_many :awards, :through => :sponsorship
end
于 2011-01-28T16:51:51.740 回答