18

I'm just trying to create a simple select menu that takes you to a specific URL. So far I have something like this:

# haml
= form_tag new_something_path, method: :get do
  = select_tag :type, options_for_select(my_array)
  = submit_tag 'New Something'

However, when I submit the form I get the UTF8 parameter as well as a "commit" parameter with the text of the button.

How can I remove the UTF8 and commit parameters?

4

2 に答える 2

43

パラメータの削除commitは比較的簡単です。入力に名前がないことを指定する必要があります。

submit_tag 'New Something', name: nil

UTF-8 パラメータに関しては...重要な目的を果たします。Rails UTF-8 param の目的を理解したら、何らかの理由でまだそれを削除する必要がある場合、解決策は思ったより簡単です...ただ form_tag ヘルパーを使用しないでください:

# haml
%form{action: new_something_path, method: 'get'}
  = select_tag :type, options_for_select(my_array)
  = submit_tag 'New Something', name: nil
于 2013-03-29T02:55:46.833 に答える
2

次のように(および) のオプションをutf8追加することで、パラメーターを取り除くことができます。enforce_utf8: falseform_tagform_form

= form_tag new_something_path, method: :get, enforce_utf8: false do

(それを指摘してくれた@Dmitryに感謝します)

ただし、必要がないことを確認してください。Ruby on Rails 3 フォームの _snowman パラメータは何のためですか? GET(実際にフォームに関連しているかどうかはわかりません。)

送信ボタンによって生成される追加のパラメーターは、name: falseオプションを設定することで削除できますsubmit_tag(submitの場合でも機能しますform_for)。

= submit_tag 'New Something', name: nil
于 2019-07-11T14:05:27.337 に答える