rails:如何在下一个视图中检查值

时间:2013-03-13 08:43:17

标签: ruby-on-rails ruby view controller

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

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 ...),因为他们来自不同的领域,我不想再提出问题......

我知道你们都在睁大眼睛,但我看了几个类似的问题,但不能把它们放在一起。

任何帮助表示感谢。

2 个答案:

答案 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) %>