Formtastic/ActiveAdmin 为 select 输入设置默认值
Formtastic/ActiveAdmin set a default value for a select input
我正在 ActiveAdmin 中开发一个自定义表单,我决定将其用于 adding/editing 以遵循 DRY
原则,因此如果用户使用它来编辑记录,我需要填充它(这不是数据库记录)。
所以问题是我有这些输入:
f.input :model_id, as: :select, collection: Model.all.map { |m| [m.id.to_s + ' - ' + m.name, m.id] }, input_html: { required: true }
f.input :enabled, as: :select, collection: {'Yes': true, 'No': false}, input_html: { required: true }
如果我使用表单进行编辑,我想为它们设置一个默认值,但我不知道如何设置,因为每个人都在谈论使用 belongs_to
或数据库关系,并且 ActiveAdmin
将为您处理默认值,这不适用于我的情况,因为它不是数据库记录,而且我没有 ActiveRecord Model
。
甚至 Formtastic
的 official docs 也没有帮助。
我找到了解决方法,这里是所有遇到相同问题的人的答案:
f.input :model_id, collection: Model.all.map { |m| [m.id.to_s + ' - ' + m.name, m.id] }, selected: object.model_id
f.input :enabled, collection: { 'Yes': true, 'No': false }, selected: object.enabled
我正在 ActiveAdmin 中开发一个自定义表单,我决定将其用于 adding/editing 以遵循 DRY
原则,因此如果用户使用它来编辑记录,我需要填充它(这不是数据库记录)。
所以问题是我有这些输入:
f.input :model_id, as: :select, collection: Model.all.map { |m| [m.id.to_s + ' - ' + m.name, m.id] }, input_html: { required: true }
f.input :enabled, as: :select, collection: {'Yes': true, 'No': false}, input_html: { required: true }
如果我使用表单进行编辑,我想为它们设置一个默认值,但我不知道如何设置,因为每个人都在谈论使用 belongs_to
或数据库关系,并且 ActiveAdmin
将为您处理默认值,这不适用于我的情况,因为它不是数据库记录,而且我没有 ActiveRecord Model
。
甚至 Formtastic
的 official docs 也没有帮助。
我找到了解决方法,这里是所有遇到相同问题的人的答案:
f.input :model_id, collection: Model.all.map { |m| [m.id.to_s + ' - ' + m.name, m.id] }, selected: object.model_id
f.input :enabled, collection: { 'Yes': true, 'No': false }, selected: object.enabled