问题是要通过_path传递查询参数。
示例我知道如何传递普通参数
edit_survey_path(@poll_module)
生成
/survey/12 because of route /survey/:id
哪个是正确的并且可以编辑
但是,我想为new_survey_path生成以下URL
/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})
是的,有些人疯了,但这是我在论坛上发现的东西
new_survey_path(@poll_module) generates
http://rubyenv:3000/surveys/new.lgpd?
那是因为编辑路径是 #routes new_survey GET /surveys/new(.:format)如此格式
我想要一个查询参数 / surveys / new?pollModule = lgpd
因为在新调查中,我需要在回答调查之前搜索严格的问题,而这个问题取决于模块
答案 0 :(得分:0)
问题不是_path帮助器,而是我在视图上使用的组件
如果您使用button_to,它已经具有用于参数的参数
{poll_module:'teste123'}%>文档参考-> https://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to
或者如果我使用link_to,则默认情况下获取查询
doc -ref-> https://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
答案 1 :(得分:0)
通常,您会传递一个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") %>
当您单击“ testLink”时,它应将您重定向到URL localhost:3000/surveys/new?pollModule=randomInput
。
还请确保该路由位于routes.rb文件的顶部,因为有时排序是一件麻烦事。希望能对您有所帮助,让我知道它是否有效。