我有一个简单的待办事项应用,其中有一个新页面,其中包含模型任务的表单和索引页。
当我在新视图中创建新任务时: (erledigt意味着为了完整而完成)
<%= f.check_box(:erledigt,{}, 1, 0) %>
当我启动 rails c
时2.0.0-p247 :021 > Task.all.pluck(:erledigt)
(0.2ms) SELECT `tasks`.`erledigt` FROM `tasks`
=> [1, 1, 0, 0]
我看到表格会保存我的输入。
问题:
在索引视图中检查每个任务的原因是什么? 任何人都可以解释或提供任何建议吗?
<% @tasks.each do |task| %>
<tr>
<td><%= check_box_tag(task.erledigt, 1, 0) %> </td>
<td><%= link_to task.aufgabe, task %></td>
<td><%= task.beschreibung %></td>
<td><%= task.prioriaet %></td>
<td><%= link_to 'zeigen', task %></td>
<td><%= link_to 'LÖSCHEN', task, method: :delete, data: { confirm: 'Sicher?' } %></td>
</tr>
<% end %>
基本上,索引视图显示了带有复选框的所有任务,并且每个任务都已经过检查,但是应该检查是否有错误#34;&#34; erledigt&#34;属性为1。 正如您所看到的,有一些任务为0。
立即查看索引:
[x] task1
[x] task2
[x] task3
[x] task4
索引视图应该如何:
[x] task1
[x] task2
[] task3
[] task4
答案 0 :(得分:2)
所有复选框都显示为已选中,因为您将0
选项checked
传递给 check_box_tag ,并将ruby解释为0
true
值。
<td><%= check_box_tag(task.erledigt, 1, 0) %> </td>
只需将上述内容更新为
即可<td><%= check_box_tag("task_erledigt",task.erledigt, task.erledigt == 1 ? true: false ) %> </td>
因此,根据task.erledigt
的值,复选框将显示已选中或未选中状态。