我正在尝试通过link_to发送参数,我不知道如何访问它......或者我是否正确地执行此操作。
我的路线设置如下:
resources :coins do
resources :questions
end
在硬币页面中,每个链接都会创建一个新问题,并且应该包含一个值,ques_num,这是一个从1到5的整数。这个数字对应一个问题编号。所以第一个链接发送:ques_num = 1,第二个发送:ques_num = 2等。我想访问这个号码并将其存储在@ question.ques_num中。我该怎么做?
我正在创建链接并尝试使用以下命令发送参数:
<%= link_to "Submit an answer", new_coin_question_path(@coin.id, :ques_num => 1) , class: "btn btn-default" %>
我看到URL中显示的参数正确(第一个链接生成网址:http://localhost:3000/coins/1/questions/new?ques_num=1)
如何从重定向到的new_coin_question_path访问此值?
答案 0 :(得分:4)
要直接回答这个问题,我相信您正在寻找params[:ques_num]
或params.fetch(:ques_num)
。
更一般地说,我建议您考虑构建调试策略。运行时控制台(例如pry)可以极大地帮助您在不确定自己有权访问时获取上下文。
答案 1 :(得分:0)
如果我说得对,那么问题在于你是在渲染视图的方法上传递参数,在那里创建问题的表单是不必要的。您可以以question_num
的形式添加隐藏的输入值,并将其传递给控制器,方法是创建问题。
如果您希望在自己的视图中使用question_num
参数访问您的问题,这是另一个问题,您需要设置自己的路线才能实现。 Rails默认路由使用ID,这意味着当您尝试查看/coins/1/questions/10
视图时,您将获得类似:questions#show
,其中10是问题ID。