RailsでGETでデータを受け取りたい

Ruby on Rails でViewのフォームからコントローラにGET渡しするサンプルです。

  • ビューのform_tagで、methodにgetを指定する。
  • コントローラで、params[:q]で受け取ることができる。
フォームの値をGETで渡すコード
<%= form_tag welcome_index_path, method: :get do %>
  <%= text_field_tag 'q' %>
  <%= button_tag do %><span>GETで送る</span><% end %>
<% end %>
  • 遷移後のURLは、コントローラがwelcome、アクションをindexのとき、下記のようになる。
http://localhost:3000/welcome/index?utf8=%E2%9C%93&q=a&button=
  • フォームのデータはPOSTで渡すこともできる
  • 遷移後のURLに、utf8=%E2%9C%93が標準では付いてしまう。これを取り除くには、下記の方法を行う。
メッセージ:
Y S V​ Z H