Ruby on rails 抑制由simple_form生成的输入名称中的方括号

Ruby on rails 抑制由simple_form生成的输入名称中的方括号,ruby-on-rails,ruby,forms,simple-form,Ruby On Rails,Ruby,Forms,Simple Form,我正在开发一个可书签的搜索表单-使用simple_表单,以便访问一些自定义输入。由于没有连接真实的模型对象,因此我使用:q符号来伪造一个: = simple_form_for :q, url: projects_path, method: :get do |f| = f.input :area_id, as: :select, collection: (...) = f.input :description, as: :geocomplete 虽然这样做有效,但

我正在开发一个可书签的搜索表单-使用simple_表单,以便访问一些自定义输入。由于没有连接真实的模型对象,因此我使用:q符号来伪造一个:

= simple_form_for :q, url: projects_path, method: :get do |f|
  = f.input :area_id,
    as: :select,
    collection: (...)
  = f.input :description,
    as: :geocomplete
虽然这样做有效,但命名约定会产生不太好的URL,例如:

...?q[area_id]=16&q[description]=Paris&q[lng]=4.123&q[lat]=30.123
有没有办法告诉simple_form抑制伪:q对象并生成如下URL:

...?area_id=16&description=Paris&lng=4.123&lat=30.123

谢谢你的提示

就像@Martin写的那样,这是不可能做到的。所以它要么是标准形式的助手,要么接受方括号。我选择了后者。

这仍然是一个有效的参数列表。控制器应该接收q=>{area_id=>16,description=>'Paris'…}之类的内容,这仍然非常有用。你想清理URL有什么原因吗?我不认为这是可能的,但是有一个非常具体的要求,也许你最好使用Rails标准帮助程序?正如我所说的,它是有效的。控制器端也没有问题。但是,由于我们正在为其他搜索参数构建语义URL,我想去掉URL中的方括号。我认为,只要您使用任何形式,就不能删除方括号。Rails会自动将任何表单转换为散列,而散列就是括号的来源。如果您想在没有表单的情况下构建参数,您可能会使用诸如text_field_标记之类的东西,这将为您提供所需的URL格式,但它将不再位于表单中。