Rails表单使用GET请求:如何删除按钮和utf8参数?

And*_*rew 15 ruby-on-rails

我只是想创建一个简单的选择菜单,将您带到特定的URL.到目前为止,我有这样的事情:

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

但是,当我提交表单时,我获得了UTF8参数以及带有按钮文本的"commit"参数.

如何删除UTF8并提交参数?

And*_*rew 40

删除commit参数相对简单,您需要指定输入没有名称:

submit_tag 'New Something', name: nil
Run Code Online (Sandbox Code Playgroud)

关于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
Run Code Online (Sandbox Code Playgroud)

  • 在rails 4.1中为form_tag引入了新选项 - enforce_utf8.您可以将其设置为false. (11认同)