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

Posted

技术标签:

【中文标题】ActiveScaffold:如何为多态关联创建下拉选择?【英文标题】:ActiveScaffold: How to create a drop-down select for polymorphic association? 【发布时间】:2011-01-23 02:13:17 【问题描述】:

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

非常感谢一些建议。

【问题讨论】:

也在寻找答案...现在正在玩 .options= 是否可以正常查询关联。 Award.first.sponsorship 有效吗?您可以通过控制台创建奖励和赞助吗? 你能提供整个堆栈跟踪吗? 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于ActiveScaffold:如何为多态关联创建下拉选择?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 如何为多态关联填充“model_type”字段?

创建下一个/上一个导航

Kubernetes Cron Job 在创建下一个计划之前终止 Pod

以编程方式创建按钮并使用侦听器从第一个按钮创建下一个按钮

如何在我的jtable中获得超过100行?

Hadoop 的 Apriori 和关联规则