以前の開発者が作成したコードでいくつか修正するように割り当てられました。彼はデータベースにシリアライズされたチェックボックスの値を保存しました。値が説明されているようにテーブルに格納されているのは確かですが、フォームが表示されたときにチェックボックスはDBに格納された内容に従ってチェックされません。どのチェックボックスをチェックすべきかをフォームが知る前に、そのデータをシリアル化しておく必要があると仮定しています。Rails 1.2.3データのシリアル化解除
除外データのシリアル化を解除して、次のコードでcheck_box_tagメソッドのchecked属性にtrueを割り当てることができる方法はありますか?
<p><label for="supplemental_material_type_exclusions">Exclusions</label><br/>
<%= ApplicantBudgetlevel.find(:all).collect { |p|
if @supplemental_material_type.exclusions
checked = @supplemental_material_type.exclusions.include?(p.level)
else
checked = false
end
"#{check_box_tag('supplemental_material_type[exclusions][]', p.level, checked)} #{p.level} - #{p.range}<br />\n"
} %>
</p>
彼が使用したシリアライゼーションは、モデルの指示として実行されました。だから私はそれが自家製のシリアル化だとは思わない。 – Skittles
あなたは今どのような出力を得ていますか? – sarnold
さて、すべてのチェックボックスは、尊敬のラベルと同じように表示されます。唯一間違っているのは、最初にチェックされたシリアル化された値が上記のポストされたコードを使用してチェックされていないことです。値がシリアル化され、シリアル化されていない状態でシリアル化されている必要があるため、条件によって何がチェックされ、何をすべきではないかを判断できるようになります。 – Skittles