simple_form提交的默认disable_with

App*_*ter 6 ruby-on-rails simple-form

我想在simple_form中更改提交按钮的默认行为,这样我就不需要为所有表单显式指定:disable_with => true.如何在simple_form.rb中进行此特定更改?

jus*_*don 5

这在较新版本的Rails中略有不同,因为不建议使用属性disable_with.我写了一篇文章:http://www.railsonmaui.com/blog/2014/02/23/simple-form-and-disable-processing-by-default/

这是新代码:

SimpleForm::FormBuilder.class_eval do
  def submit_with_override(field, options = {})
    data_disable_with = { disable_with: 'Processing...' }
    options[:data] = data_disable_with.merge(options[:data] || {})
    submit_without_override(field, options)
  end
  alias_method_chain :submit, :override
end
Run Code Online (Sandbox Code Playgroud)

感谢@Appster的想法!


App*_*ter 3

将此覆盖添加到我的 simple_form.rb 中,效果非常好!

SimpleForm::FormBuilder.class_eval do
  def submit_with_override(field, options = {})
    submit_without_override(field, {:disable_with => 'saving...'}.merge(options))
  end
  alias_method_chain :submit, :override
end
Run Code Online (Sandbox Code Playgroud)