からくりがてんこ

IT関連情報、プログラミングに関する作業ログや備忘録を記載していきます。

Rails:クエリストリングのutf8=✓を消したい

例えばRailsで検索フォームをgetで送信すると
"http://localhost:3000/serach?utf8=✓&commit=検索&word=test"
こんなURLになる。

utf8、commitはいらないです。というリクエストがあったので調べてみた。

commitを送らない

<%= submit_tag("検索") %>

とすると"name="commit"が自動的に付与される。
なので、nameにnilを設定することで解決。

<%= submit_tag("検索", name: nil) %>

utf8を送らない

どうやらRailsのIE5対応みたいですね。
消しちゃいましょう。

config/initializersに下記のファイルを作る(ここではutf8_enforcer_tag.rbにしました)

#config/initializers/utf8_enforcer_tag.rb

module ActionView
  module Helpers
    module FormTagHelper
      def utf8_enforcer_tag
        "".html_safe
      end
    end
  end
end

サーバ再起動すれば問題解消!

感謝サイト:

Ruby on Rails - submit_tag で付加される commit, utf8 パラメータ! - mk-mode BLOG