Tengo un formulario rails3 que permite al usuario editar una lista de respuestas, como parte de una evaluación.
I utilizar un bucle fields_for
para generar cada entrada de texto:Rails3 fields_for on text Hash: no funciona como se esperaba
app/modelos/assessment.rb:
class Assessment < ActiveRecord::Base
serialize :answers, Hash # answers is a t.text field used to store all answers.
end
app/Ver/evaluaciones/new.html.erb:
<p>Initialized answers: <%= @assessment.answers %></p>
<% item_counter = 0 %>
<% form.fields_for :answers do |answer_fields| %>
<% item_id = "item" + item_counter.to_s %>
<% item_counter = item_counter + 1 %>
<div class="field">
<%= answer_fields.label "the appropriate question, omitted for brevity" %>
<br/>
<% @assessment.answers[item_id] = "" %>
<%= answer_fields.text_field item_id, :value => @assessment.answers[item_id] %>
</div>
<% end %>
PROBLEMA: El ciclo fields_for
tiene cero iteración, no se imprime ningún campo.
(a pesar de que "Respuestas inicializadas:" se muestra correctamente: {"a" => 143, "b" => 42})
por lo que yo sé campos se utilizan para cuando se tiene una relación entre los modelos AR así que no estoy seguro de por qué estás tratando de hacer que los campos en busca de respuestas con este ayudante tal vez debería escribir su propio ayudante o render parcial – Bohdan
@Bohdan: Parece posible, a juzgar por esta publicación: http://stackoverflow.com/questions/1002963#4809844 –
parece que este ayudante acepta la colección como un param podría cambiarla a '<% form. fields_for @ assessment.answers do | answer_fields | %> '? – Bohdan