ruby-on-rails-3 – Rails3 fields_for文本哈希:不按预期工作

作为评估的一部分,我有一个rails3表单,允许用户编辑答案列表.
我使用fields_for循环来生成每个文本输入:

app / models / assessment.rb:

class Assessment < ActiveRecord::Base
  serialize :answers,Hash   # answers is a t.text field used to store all answers.
end

app / view / assessment / 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循环执行零迭代,不打印任何字段.
(尽管“初始化答案:”正确显示:{“a”=> 143,“b”=> 42})

解决方法

这应该做.在本地测试
<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 %>

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...