【发布时间】:2012-04-18 02:08:21
【问题描述】:
我被指派修复以前开发人员创建的代码中的一些问题。他将序列化的复选框值存储在数据库中,尽管这些值肯定会按照描述存储在表中,但当表单出现时,不会根据存储在数据库中的内容检查复选框。我假设我需要先反序列化该数据,然后表单才能知道应该选中哪些复选框。
有没有办法反序列化排除数据,以便以下代码能够将 true 分配给 check_box_tag 方法的选中属性?
<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>
【问题讨论】:
-
他使用的序列化是作为模型中的指令执行的。所以我不相信这是一部自制的连载。
-
你现在得到什么样的输出?
-
好吧,所有的复选框都显示为它们应有的尊重标签。唯一错误的是,最初检查的序列化值没有显示为使用上面发布的代码进行检查。我怀疑这是因为这些值是序列化的,我需要对它们进行反序列化,以便 if 条件可以确定应该检查什么,不应该检查什么。
标签: ruby-on-rails serialization checkbox