我只是想创建一个简单的选择菜单,将您带到特定的URL。到目前为止,我有这样的事情:
# haml
= form_tag new_something_path, method: :get do
= select_tag :type, options_for_select(my_array)
= submit_tag 'New Something'
但是,当我提交表单时,我会获得UTF8参数以及带有按钮文本的“commit”参数。
如何删除UTF8并提交参数?
答案 0 :(得分:39)
删除commit
参数相对简单,您需要指定输入没有名称:
submit_tag 'New Something', name: nil
关于UTF-8参数......它有一个重要的目的。一旦理解了the purpose of the 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
答案 1 :(得分:0)
您可以通过添加utf8
的{{1}}选项(以及enforce_utf8: false
)来摆脱form_tag
参数,如下所示:
form_form
(感谢@Dmitry指出)
但是请确保您不需要它:What is the _snowman param in Ruby on Rails 3 forms for?(我不确定它是否与= form_tag new_something_path, method: :get, enforce_utf8: false do
表格实际相关。)
由提交按钮生成的其他参数可以通过在GET
上设置name: false
选项来删除(对于submit_tag
,submit
也适用)。
form_for