ruby-on-rails - 带有 ActiveAdmin 的 text_field_tag
问题描述
我很难使用 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
在我的示例中是一个 JSONB,其值例如[{amount: 0.0, label: 'Hello'}]
,我不相信它可以通过 Formtastic 或 ActiveAdmin 本地处理。在发送数据时能够创建自定义输入也总是好的。
解决方案
在 ActiveAdmin 中使用 JSON 有点棘手,这在很大程度上取决于您的需求。最快的方法是使用activeadmin_json_editor gem。我还写了一篇关于在 ActiveAdmin 中使用 JSON的博客文章,其中包含更多细节和另一种方法,这可能更适合您的需求,因为看起来您不仅仅是在 JSON 字段中处理任意数据。
推荐阅读
- apache-spark - 无法在 Spark Dataframe 中将列拆分为多列
- mysql - IoT Mysql Query 有时我得到了 - 子查询返回超过 1 行
- javascript - Nodejs 不会像一本书的作者所说的那样执行我的 js 文件
- javascript - 录制/共享屏幕时不要在网页上显示视频
- python - 了解进程池在无限循环中的工作
- html - 如何将表单与 flexbox 对齐?
- python - AttributeError:模块“openpyxl.cell”没有属性“get_column_letter”
- rest - 使用 Wikipedia 的 RecentChanges API 的实时数据流
- angular - 部署后 Angular 代码未在服务器上运行
- javascript - 如何仅使用类获取 innerHTML 值?