如何将查询参数放在_path rails_helper上



问题是通过帮助程序传递查询参数_path。

示例我知道如何传递普通参数

edit_survey_path(@poll_module)

生成

 /survey/12 because of route /survey/:id

哪个是正确的,可以编辑

但是,我想为new_survey_path生成以下网址

/survey/new?pollModule=lgpd

那么我应该怎么写

new_survey_path(????)

在视图的控制器上,我有@poll_module = 'lgpd'

然后我尝试了

new_survey_path(@poll_module)
new_survey_path({@poll_module})
new_survey_path({pollModule: @poll_module})
new_survey_path({:pollModule => @poll_module)
new_survey_path(:pollModule, {pollModule: @poll_module})

是的,有些很疯狂,但这是我在 forun 上发现的东西

 new_survey_path(@poll_module) generates 
 http://rubyenv:3000/surveys/new.lgpd?

这是因为编辑的路由是 #routes new_survey GET/surveys/new(.:format( 所以是 get 在格式上

我想要一个查询参数 /surveys/new?pollModule=lgpd

因为在新的调查中,我需要在回答调查之前搜索严格的问题,而这个问题取决于模块

通常你传递一个查询参数,就像这样new_survey_path({key: "value1", key2: "value2"})。因此,您报告尝试过的一个版本应该可以正常工作。这就是为什么我认为它可能会干扰您的路线。您能否尝试隔离问题并简单地将以下内容添加到您的项目中:

# routes.rb
resources :surveys, only: [:new]
# app/controllers/surveys_controller.rb
class SurveysController < ApplicationController
  def new
    @pollModule = params[:pollModule]
  end
end
<!-- app/views/surveys/new.html.erb -->
<h1>New Survey</h1>
<p>poll module inserted as query param: <%= @pollModule %></p>
<%= link_to "testLink", new_survey_path(pollModule: "randomInput")  %>

当您单击"测试链接"时,它应该将您重定向到 URL localhost:3000/surveys/new?pollModule=randomInput

还要确保路由位于 routes.rb 文件的顶部,因为有时排序会把事情搞砸。希望有帮助,让我知道它是否有效。

问题不在于_path助手,而在于我在视图上使用的组件

如果使用button_to,则它已经具有参数参数

{poll_module: 'teste123'} %>

文档参考 ->https://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

或者如果我使用link_to它默认获取查询

文档 -参考->https://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

相关内容

  • 没有找到相关文章

最新更新