文本哈希Rails3 fields_for:工作不正常 [英] Rails3 fields_for on text Hash: not working as expected
本文介绍了文本哈希Rails3 fields_for:工作不正常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个rails3形式,它允许用户编辑答案的列表,作为评估的一部分。
我用的是 fields_for
循环来生成每个文本输入:
I have a rails3 form that allows the user to edit a list of answers, as part of an assessment.
I use a fields_for
loop to generate each text input:
应用程序/模型/ assessment.rb:
app/models/assessment.rb :
class Assessment < ActiveRecord::Base
serialize :answers, Hash # answers is a t.text field used to store all answers.
end
应用程序/视图/评估/ new.html.erb:
app/view/assessments/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 %>
问题:的 fields_for
循环不为零的迭代,没有实地获取打印
。
(尽管初始化答案:示出正确地:{一个=> 143,B=> 42})
PROBLEM: The fields_for
loop does zero iteration, no field gets printed.
( despite "Initialized answers:" showing correctly: {"a"=>143, "b"=>42} )
推荐答案
本应该做的。在本地进行测试。
This should do. Tested locally.
<p>Initialized answers: <%= @assessment.answers %></p>
<% @assessment.answers.each do |key, value| %>
<%= form.fields_for :answers, @assessment.answers[key] do |answer_fields| %>
<div class="field">
<%= answer_fields.label key %>
<br/>
<%= answer_fields.text_field key, :value => value %>
</div>
<% end %>
<% end %>
这篇关于文本哈希Rails3 fields_for:工作不正常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文