2013-08-16 33 views
1

其實我想這跟radio_button,但我放棄了。(太複雜,我。)Rails 3:我怎樣才能把check_box_tag的布爾數據放入nested_form中?

我有數據庫表「問題」,「答案」。(這兩個表已經被的has_many和belongs_to的關係,以及nested_form關係)。

答案表中存在user_answer(布爾值,默認值爲'false')。

我想讓它變成這樣。

  1. 如果用戶選中check_box,user_answer更改爲「true」值。
  2. 然後我會比較答案表中正確列中的另一個值,
  3. 最後我將結果保存在問題表中的is_correct列中。

但我不知道該怎麼辦。這是輸入表單。

<h1><%= @survey.name %></h1> 
<%= form_tag({:controller => "surveys", :action => "grading"}) do %> 
    <ol class="questions"> 
    <% @survey.questions.each do |question| %> 
    <li> 
    <strong><%= question.content %></strong> 
    <ol class="checkbox"> 
    <% question.answers.each do |answer| %> 
     <%= check_box_tag(answer.user_answer) %> 
     <%= label answer.content) %> 
    <% end %> 
    </ol> 
    <hr /> 
    </li> 
    <% end %> 
    </ol> 

    <div><%= submit_tag("Submit", :class => "submit") %></div> 

但answer.user_answer總是'假',它根本沒有改變。我怎樣才能改變這條線?

<%= check_box_tag(answer.user_answer) %> 

回答

0

有:

<% question.answers.each do |answer| %> 
    <%= check_box_tag 'answers[]', answer %> 
    <%= label answer.content %> 
<% end %> 

將發送params[:answers]到控制器。在控制器中進行所有比較等。

+0

糟糕,參數數量錯誤(1 for 2)錯誤已發生! – gunsmoke

+0

您必須修改控制器代碼才能使用更改 –

+0

仍未更改。我已經在其他控制器和其他模型中寫過分級功能。 http://stackoverflow.com/questions/18267663/rails-how-can-i-call-methods-in-the-nested-model-from-parents我需要做的唯一事情就是改變user_answer字段中的真實值在我檢查時在答案表中。 – gunsmoke

相關問題