【问题标题】:Formtastic/ActiveAdmin set a default value for a select inputFormtastic/ActiveAdmin 为选择输入设置默认值
【发布时间】:2017-07-09 12:27:45
【问题描述】:

我正在 ActiveAdmin 中处理一个自定义表单,我决定使用它来添加/编辑以遵循 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 也无济于事。

【问题讨论】:

    标签: ruby-on-rails activeadmin formtastic


    【解决方案1】:

    我想出了如何去做,这里是任何面临同样问题的人的答案:

    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
    

    【讨论】:

    • 我已经尝试过你的方法,但它对现有记录工作错误,因为它总是从 'selected: ' 中选择值
    • 我用下一个:selected: f.object.field || default_value
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多