使用ActiveAdmin的text_field_tag

时间:2019-06-26 18:10:07

标签: ruby-on-rails activeadmin formtastic

我在使用ActiveAdmin及其DSL时遇到了困难。我正在使用它来构建我的管理员,有时需要以某种形式使用text_field_tag;我的意思是某些与我要处理的模型无关的字段,这些字段将与模型相关的数据一起发送出去。

基本上是一个自定义文本字段。没什么太疯狂的。

所以我已经建立了这个

panel 'Send payment authorization' do
  active_admin_form_for EventPaymentAuthorization.new, url: { action: :send_event_payment_authorization } do |f|
    f.inputs do
      f.input :body, as: :text

      f.text_field_tag :line_items_label
      f.text_field_tag :line_items_amount

      f.input :fees_in_cents, as: :select, collection: [:free, :automatic], prompt: true, selected: :automatic
    end
    f.actions do
      f.action :submit, label: 'Create payment authorization'
    end
  end
end

f.text_field_tag会被ActiveAdmin忽略。这是为什么?它不会引发任何错误,但也不会显示任何错误。

我需要自定义不相关输入的原因是,在我的示例中,line_items是具有诸如[{amount: 0.0, label: 'Hello'}]之类的值的JSONB,我不认为它可以通过Formtastic或ActiveAdmin本身进行处理。发送数据时能够创建自定义输入也总是很好。

1 个答案:

答案 0 :(得分:0)

在ActiveAdmin中使用JSON有点棘手,这很大程度上取决于您的需求。最快的方法是使用activeadmin_json_editor gem。我还在working with JSON in ActiveAdmin上写了一个博客条目,其中包含更多详细信息和另一种方法,它可能更适合您的需求,因为它似乎不只是在JSON字段中使用任意数据。