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

ActiveScaffold: How to create a drop-down select for polymorphic association?

提问人:Swartz 提问时间:3/3/2010 更新时间:11/30/2011 访问量:1897

问:

我正在尝试为与 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 中不直接支持的功能。

非常感谢一些建议。

Ruby-on-Rails 选择 ActiveScaffold 多态性 下拉菜单

评论

0赞 Boris Churzin 3/4/2010
也在寻找答案...立即使用 .options=
0赞 Pan Thomakos 2/1/2011
是否能够正常查询关联。Award.first.sponsorship有效吗?您可以通过控制台创建奖励和赞助吗?
0赞 Jakub 2/9/2011
你能提供整个堆栈跟踪吗?

答:

0赞 Hugo 1/29/2011 #1

我不熟悉 ActiveScaffold...但是,快速浏览他们的文档后,我发现有一部分是关于has_many:通过它,我熟悉ActiveRecords...那么,就其价值而言,您的多态关联是否有可能写成这样?

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

class Individual
  has_many :awards, :through => :sponsorship
end
0赞 Offirmo 2/1/2011 #2

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

当使用多态性时,rails 会自动创建列,在本例中为:*sponsorship_id* 和 *sponsorship_type*。

您可能希望使用其中之一。

但是,我不熟悉 ActiveScaffold form_ui,所以我无法进一步帮助您。

0赞 nroose 11/30/2011 #3

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