フォームの送信にajax呼び出しを使用しないプロジェクトに取り組んでいるので、local: true
Rails docs :
:local - By default form submits are remote and unobstrusive XHRs. Disable remote submits with local: true.
ローカルオプションをデフォルトでtrueに設定する方法はありますか?
Rails 5 form_with
このようなヘルパー:
<%= form_with(model: @user, local: true) do |f| %>
<div>
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div>
<%= f.label :email %>
<%= f.email_field :email %>
</div>
<%= f.submit %>
<% end %>
form_with
メソッドのオーバーライドを検討してください:
# form_helper.rb
def form_with(options)
options[:local] = true
super options
end
それはあなたのアプリケーションのすべてのフォームでそれを解決するはずです。
あなたが述べたように、それはlocal: true
でフォームごとに設定することができます。グローバルに設定するには、構成オプションform_with_generates_remote_forms
を使用します
https://guides.rubyonrails.org/configuring.html -config.action_view.form_with_generates_remote_formsは、form_withがリモートフォームを生成するかどうかを決定します。デフォルトはtrueです。
イニシャライザに設定します。
# config/initializers/action_view.rb
Rails.application.config.action_view.form_with_generates_remote_forms = false
Railsの設定はconfig/applicaiton.rb
module App
class Application < Rails::Application
# [...]
config.action_view.form_with_generates_remote_forms = false
end
end
ガイCの回答は適切ですが、個別のイニシャライザではなく、すべての構成をこのファイルに入れる方が慣用的です。これが、Rails devのほとんどがそれを期待する場所です。これを配置すると、これは惨事を引き起こすことに注意してくださいconfig/development.rb
のみまたはその他の環境固有のファイル。