0

我正在尝试制作一个测验应用程序。这样问题表中的每个问题都具有以下字段:

qn,正确,选项 1,选项 2,选项 3

到目前为止,这是我的 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 页面 ok,但是一旦我在那里,我怎么知道单击了哪个链接?或者,我如何将其从控制器中取出。

我不能使用 find(params...) 因为它们来自不同的领域,而且我也不想查找问题...

我知道你们在翻白眼,但我看过一些类似的问题,但不能完全放在一起。

任何帮助表示赞赏。

4

2 回答 2

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])
于 2013-03-13T08:57:35.963 回答
1

试试这个

<%= link_to b, answer_path(:id => @question.id) %>
于 2013-03-13T08:54:23.913 回答