Rails3系からRails5系へとアプリのバージョン移行を行っているのですが、
ViewのSubmit時に送られるパラメータに微妙な差異があるようなので、仕様についてご質問させていただきます。
フォームから検索するページがありsubmit押下したときの挙動として
・Rails3ではparamsに[:commit]というパラメータがセットされている
・Rails5に移行して同じ操作をしたところparamsには[:commit]パラメータが付属していない
という動作挙動の差異が見受けられました。
こちらについては、Railsのバージョンが上がったことが原因でparamsの仕様が変わった経緯などありますでしょうか??
追記:
ちなみにViewではsubmit_tagを使っています。
※パーシャル
<%= form_for :resource_stats, :html => {:method => 'get'} do |f|-%> <p> <%= t('page.query.date') %> : <%= text_field_tag "from", params[:from], {:id => "txtFromDate", :size => 15} %>〜<%= text_field_tag "to", params[:to], {:id => "txtToDate", :size => 15} %> <br/> <%= render :partial => 'libraries_list' %> <%= submit_tag t('page.show') -%> </p> <%- end -%>
さらに追記:
管理ツールで作成されたformを確認すると以下のようにname属性は付与されていますね。
にもかかわらず、paramasにはcommitが入ってきていません。
view
1<input type="submit" name="commit" value="表示" data-disable-with="表示">
params
1{"utf8"=>"✓", "from"=>"", "to"=>"", "lib_code"=>"", "controller"=>"admin/resource_stats", "action"=>"ill_receive_libraries" 2}
もっと追記:
submit_tagの書き方を以下のように変えてみると期待通りcommitのパラメータがセットされます。
<%= submit_tag t('page.show'), 'data-disable-with' => false -%>
data-disable-withがオンになっている場合はcommitのパラメータがつぶされているようなのです。
どのバージョンからこうなっているかわかりませんが、何故こうするとうまくいくのかわからず気持ち悪い。。
あなたの回答
tips
プレビュー