【发布时间】:2019-02-19 11:59:09
【问题描述】:
我有一个 Tag 模型作为多态表,我在 Account 和 Activity 两个模型上使用它。在活动管理表单中选择帐户和活动时,我想用它们的名称替换它们。
当帐户或活动显示为实例时,该表单正在工作。但是当我尝试用他们的名字替换它们时(见下面的代码),我在表单中收到错误“必须存在并且不能为空”。我浏览了 ActiveAdmin 的文档,但找不到答案。
ActiveAdmin.register Tag do
# belongs_to :spot
permit_params :name, :taggable_type, :taggable_id
form do |f|
f.semantic_errors
f.inputs do
f.input :name,
collection: Tag::TAG_NAMES
f.input :taggable_type,
collection: Tag::TAGGABLE_TYPES
f.input :taggable, label: "Account / Activity",
collection: Account.all.map { |a| a.nickname } +
Activity.all.map { |act| act.name }
end
f.actions
end
end
我想要一些类似 label_method 和 value_method 的东西,它可以让我用他们的名字而不是实例来显示账户和活动,这根本不是用户友好的,但仍然将它们保存为实例而不会出现上述错误。
非常感谢任何帮助,谢谢:)
【问题讨论】:
标签: ruby-on-rails nested activeadmin polymorphic-associations