我正在使用 Rails(3.2.5 和 ruby 1.9.3)和 mongodb 和 mongoid。我想给用户检查工作日的选项。因此,我的控制器中有一个类型为 hash 的字段:
field :wochentage, :type => Hash, default: { :mo => 0,
:di => 0,
:mi => 0,
:dn => 0,
:fr => 0,
:sa => 0,
:so => 0
}
问题是我不能让它在网络表单中工作:
<% for d,v in @timetable.wochentage %>
<td><%= f.check_box :wochentage[d]%></td>
<% end %>
我得到的错误是:
无法将符号转换为整数
谁能指出我正确的方向?在此先感谢,斯文
好的,更进一步:使用 fields_for 表单助手,我离得更近了:
<%= f.fields_for :wochentage do |w| %>
<td><%= w.check_box :mo %></td>
<td><%= w.check_box :di %></td>
<td><%= w.check_box(:mi, checked_value: "1", unchecked_value: "0") %></td>
<td><%= w.check_box :dn %></td>
<td><%= w.check_box :fr %></td>
<td><%= w.check_box :sa %></td>
<td><%= w.check_box :so %></td>
<% end %>
使用此代码,我可以设置工作日。但它不会从数据库中读取它,如果我想编辑它,尽管它存储正确:Wochentage: {"mo"=>"0", "di"=>"0", "mi"=>"1", "dn"=>"0", "fr"=>"0", "sa"=>"0", "so"=>"0"}
在编辑表单中,所有复选框都未选中。那么如何使复选框以正确的状态显示?
谢谢,