2016-09-20 50 views
0

好的,這是我的代碼。如何將自定義屬性添加到form_for?

<%= form_for @quiz do |f|%> 
    <% @questions.shuffle.each do |q| %> 
    # get_answers returns an array of 4 random answers 
    <% answers = q.get_answers %> 
    <%= f.label q.inquest %><br> 
    <% answers.each do |a| %> 
     <%= f.radio_button <need help here!>, a %> 
     <%= f.label <need help here!>, a %><br> 
     <%= f.hidden_field <need help here!>, q.id %> 
    <% end %> 
    <% end %> 
<% end %> 

我測驗表具有屬性

concept_id 
user_id 

我怎麼添加自定義屬性,我可以有在後的動作獲得?它應該是動態的,因此它可以隨着有多少問題進行擴展。我想要這樣的東西給我的參數。

{ 
    user_answers: { 
    question1: { 
     :question_id 
     :answer 
    { 
    } 
} 

根據有多少問題存在,它會去像問題1,2,3,4等。

的hidden_​​field將與question_id攜帶而radio_button將攜帶的答案。我不需要它來保存或任何東西,我只需要訪問它們

+0

您好,歡迎堆棧溢出。酷 - 看起來不錯..所以我會開始使用'each_with_index'(所以你知道你的答案),並使用索引作爲表單字段的名稱的一部分。例如'<%= f.hidden_​​field「question_id _#{idx}」,:value => q.id%>' –

+0

謝謝!我只是補充說,我還爲單選按鈕添加了'<%= f.radio_button「answer#{index + 1}」,%>',但是我收到了未定義的方法錯誤。這是因爲''answer#{index + 1}「'不是@quiz的屬性。我如何得到這個工作? – LeongZeno

+0

正如你所見,你可以使用'_tag'版本而不只是'form_for'版本:) –

回答

1

好的,所以我意識到我不應該在f上調用這些表單標籤。而不是讓他們爲自己的表單標籤

比如:f.radio_button

radio_button_tag,而不是

相關問題