使用 simple_form 将“data-x”属性添加到 <form>?

问题描述 投票:0回答:1

我正在尝试向所有表单添加刺激处理程序:

<form data-controller="ajax-errors"></form>

我查看了 simple_form 中的代码,我看到的唯一选项是添加

default_form_class

https://github.com/heartcombo/simple_form/blob/main/lib/simple_form/action_view_extensions/form_helper.rb

有没有一种方法可以将数据属性附加到每个表单,而不必向每个表单传递自定义数据属性?

我尝试将其附加到默认包装器上的wrapper_html,但它不起作用

ruby-on-rails simple-form
1个回答
0
投票

看起来

simple_form_for
不允许使用除
:class
Source

以外的默认 html 选项

我们应该能够通过使用前置模块来劫持此实现

例如,类似以下内容可能有效:

module SimpleFormDataExtension 
  DEFAULT_OPTIONS = {html: {data: {controller: "ajax-errors"}}
  def simple_form_for(record, options = {}, &block)
    options = DEFAULT_OPTIONS.deep_merge(options) 
    super(record, options, &block) 
  end
end 

SimpleForm::ActionViewExtensions::FormHelper.prepend(SimpleFormDataExtension ) 
© www.soinside.com 2019 - 2024. All rights reserved.