2013-08-18 15 views
0

我有3個模型,調查 - 問題 - 答案,每個has_many/belongs_to關係。如何保存並顯示嵌套模型的單選按鈕參數?

這是輸入表單。

<ol> 
    <% @questions.each do |question| %> 
    <%= simple_fields_for "questions[#{question.id}]" do |builder| %> 
     <li> 
      <%= builder.input :answer, :collection => question.answers, :as => :radio_buttons, 
       :label_method => :content, :value_method => :id, :label => question.content %> 
     </li> 
    <% end %> 
    <% end %> 
</ol> 

我意識到radio_buttons可以很好地運行日誌。

Parameters: {"survey_id"=>"23", "commit"=>"Submit Exam", "questions"=>{"8"=>{"answer"=>"28"}, "7"=>{"answer"=>"24"}, "6"=>{"answer"=>"21"}}, "authenticity_token"=>"m/16DAjhDrEH3/8fzJLDeiqi/d+VkZJiOeqK5TuLpSw=", "utf8"=>"✓"} 

我可以像這樣在控制器中的create方法中獲取每個值。到現在爲止還挺好。

@checked_answers = params[:questions] 

我想在show view中顯示用戶的輸入。但是我不能在show方法中使用@checked_answers的值。我想我必須將其保存在數據庫中,也許我必須在數據庫表中創建另一列以保存@checked_answers。但是,這不是一個簡單的數據!(如字符串或整數...)有沒有什麼好的方法來避免在數據庫中保存數據?如果我可以直接在節目視圖中使用該參數,所有問題都可以解決!

回答

0

可以呀,你這樣做:

@checked_answers = params[:questions] 

現在你有這樣的@checked_answers

{"8"=>{"answer"=>"28"}, "7"=>{"answer"=>"24"}, "6"=>{"answer"=>"21"}} 

在你看來這樣做:

@checked_answers.each_with_index do |ques, answer| 
    "Question No #{ques}" 

    "Correct Answer #{answer}" 

或者,如果這些都回答問題&的ID,你也可以在你的數據庫中找到它們。

謝謝

+0

我已經展示的參數來自創建(POST)動作,我想在show(GET)動作中使用它們。但顯示參數(GET)是不同的。我想要保存params並在節目中使用。任何人都可以幫忙嗎? – gunsmoke