我正在尝试制作一个测验应用。 这样问题表中的每个问题都有以下字段:
qn,correct,option1,option2,option3
到目前为止,这是我的questions_controller.rb ......
def show
@question = Question.find(params[:id])
end
def answer
#not working
@answered = Question.find(params[:id])
end
这是我来自的页面......
Shuffled from question
<ul>
<% [@question.correct, @question.option1, @question.option2, @question.option3].shuffle.each do |b| %>
<li><%= link_to b, answer_path %></li>
<% end %>
</ul>
点击链接可以将它带到answer.html.erb页面,但是一旦我在那里 我怎么知道点击了哪个链接?或者,我如何从控制器中取出它。
我不能使用find(params ...),因为他们来自不同的领域,我不想再提出问题......
我知道你们都在睁大眼睛,但我看了几个类似的问题,但不能把它们放在一起。
任何帮助表示感谢。
答案 0 :(得分:2)
您可以通过在answer
params
中的属性值
<%= link_to b, answer_path(:id => @question.id, :option => b) %>
并在控制器操作params[:option]
修改强>
如果您想知道点击了哪个选项,那么您可以
<% %w(correct option1 option2 option3).shuffle.each do |b| %>
<li><%= link_to @question.try(b), answer_path(:id => @question.id, :option => b) %></li>
<% end %>
并在控制器中
question = Question.find(params[:id])
option_value = question.try(params[:option])
答案 1 :(得分:1)
试试这个
<%= link_to b, answer_path(:id => @question.id) %>