2013-03-13 30 views
0

我正在嘗試製作測驗應用程序。 使得問題的表中的每個問題有以下字段:rails:如何檢查下一個視圖中的值

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(參數...),因爲它們來自不同的領域,我不無論如何要查找一個問題...

我知道你們都滾你的眼睛,但我已經看了幾個類似的問題,但不能把它放在一起。

任何幫助表示讚賞。

+0

當你說'我怎麼知道點擊了哪個環節?'你想知道來自'correct,option1,option2,option3'的屬性被點擊了? – swapab 2013-03-13 08:54:20

+0

你沒有將任何參數傳遞給你的answer_path,這就是爲什麼你的代碼不工作。見下面回答 – 2013-03-13 08:56:02

+0

@ swap.nil - 是的。究竟。 – grooble 2013-03-13 10:30:04

回答

2

可以在answer得到屬性值,並把它的控制器動作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]) 
+0

是的,這是訣竅。謝謝。 – grooble 2013-03-13 14:24:06

+0

而且我學會了%w和'嘗試',所以再次感謝! – grooble 2013-03-13 21:20:28

+0

高興地幫助:) – swapab 2013-03-14 05:41:44

1

通過將其在params

<%= link_to b, answer_path(:id => @question.id, :option => b) %> 

試試這個

<%= link_to b, answer_path(:id => @question.id) %> 
相關問題