Set local: true as default for form_with in Rails 5
The Rails configurations can be set in config/application.rb
file.
module App
class Application < Rails::Application
# [...]
config.action_view.form_with_generates_remote_forms = false
end
end
Guy C answer is good, but it's more idiomatic to put all config in this file rather than a separate initializer; That's where most of the Rails dev would expect it.
Note that this would spell disaster if you put it config/development.rb
only or other env specific files.
As you've stated it can be set on a per form basis with local: true
. However it can be set it globally use the configuration option [form_with_generates_remote_forms][1]
. This setting determines whether form_with generates remote forms or not. It defaults to true.
Where to put this configuration? Rails offers four standard spots to place configurations like this. But you probably want this configuration in all enviroments (i.e. development, production, ...). So either set it in an initializer:
# config/initializers/action_view.rb
Rails.application.config.action_view.form_with_generates_remote_forms = false
Or maybe more commonly set in config/application.rb.
# config/application.rb
module App
class Application < Rails::Application
# [...]
config.action_view.form_with_generates_remote_forms = false
end
end
Consider overriding the form_with
method:
# form_helper.rb
def form_with(options)
options[:local] = true
super options
end
That should solve it for every form in your application.