2016-10-06 2 views
0
<%=form_for @question do |f|%> 

    <%=f.label :name, "Question:"%> 
    <%=f.text_field :name%> 

    <%=f.label :answer, "Answer:"%> 
    <%=f.text_field :answer%> 

    <%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 

    <%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 

    <%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 
<%end%> 

когда я создаю такой вопрос,как отобразить каждый объект в массиве в рельсах form_for

Question.create(
    name: "1+1?", 
    answer: "2", 
    wrong_answers: ["1", "4", "3"]) 

The редактирование форма отображает каждое wrong_answer текстовых поля как [ «1», «4», " 3" ]. Мой вопрос заключается в том, как заставить его отображать каждый номер в разных текстовых полях.

+0

ли 'wrong_answers' упорядоченный атрибут? Как вы храните массив в своей модели 'Вопрос'? –

+0

Нет, это не я не знаком с сериализованными атрибутами. Я сохраняю его как текст –

+0

Я просто сериализую его. как получить texfield для отображения каждого из них сейчас? –

ответ

0

Попробуйте это:

<% @question.wrong_answers.each do |wa| %> 
    <%= text_field_tag "question[wrong_answers][]", wa %> 
<% end %> 

Вместо:

<%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 

    <%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 

    <%=f.label :wrong_answers%> 
    <%=f.text_field :wrong_answers, multiple: true%> 
+0

Ницца! он работал, @ question.wrong_answers каждый. Однако ты забыл. между ответами и каждым, так как каждая функция –

+0

надеюсь, что она вам полезна. наслаждаться –

Смежные вопросы