評価の一部として、回答のリストを編集できるrails3フォームがあります。Rails3 fields_for on textハッシュ:期待通りに動作しない
APP /モデル/ assessment.rb:
class Assessment < ActiveRecord::Base
serialize :answers, Hash # answers is a t.text field used to store all answers.
end
アプリ/ビュー/評価/ 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 %>
Iは各テキスト入力を生成するために、
fields_for
ループを使用します
問題:ループでループがゼロになり、フィールドが印刷されません。
(「初期化された回答:」が正しく表示されていますが、{"a" => 143、 "b" => 42})
限り、私はあなたが多分あなたはあなた自身のヘルパーを書く必要があり、このヘルパーと答えのフィールドをレンダリングしようとしている理由はわからないので、あなたはARモデルとの関係を持っているときに使用されるためのフィールドを知っているようにまたは部分をレンダリングする – Bohdan
@Bohdan:この投稿から判断すると、可能性があります:http://stackoverflow.com/questions/1002963#4809844 –
このヘルパーは、コレクションをパラメータとして受け取り、 '<%form 'に変更できるようです。 fields_for @ assessment.answers do | answer_fields | %> '? – Bohdan