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 ページに移動します。または、これをコントローラーから取得するにはどうすればよいですか。

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 に答える