ActionHelperのsubmit_tagで値を渡す方法。
見た目の関係上で、submit_tagを二つ作って、たとえば「完了」「取り消し」とやりたいときがある。
普通にsubmit_tagを二つ作って、コントローラでどっちのボタンが押されたか判別してあげればいい。
このとき、どのsubmit_tagが押されたかは、params[:commit]で判別がつく。
どうしても日本人なので、ボタン表示は日本語にしたいが、
条件分岐コードに日本語が入るのはどうもね....
という向きには、
submit_tagのhtmlオプションの:nameを入れてやればいい。
:commitに入るべき値が:nameで指定したシンボルで参照できる。
こんな感じ
view
<% form_tag(:action=>'test') do %>
<%= submit_tag 'ほげ', :name=>'hoge' %>
<%= submit_tag 'ふが', :name=>'fuga' %>
<% end %>
controller
def test
if params[:hoge]
# ほげを押された処理
else
# ふがを押された処理
end
end
PR