我是Ruby和Rails的新手,所以有人请帮助我
我基本上创建了一个待办事项列表应用程序,在我的桌面上我有一个“完成”列。当我在rails中生成脚手架时,我将列设为“done:boolean”。因此,现在当您创建或编辑任务时,它有一个复选框,您可以选中或取消选中“完成”。因此,在显示完整任务列表的页面上,在“完成”列中,如果选中则表示“True”,如果未选中则表示“False”。所以我的问题是,如何用Checked Box或Unchecked框替换“True”或“False”?我也希望它在“真实”时变灰。提前谢谢!
这是我尝试过的一些代码:
Index.html.erb:
`
<h1 id="title">Project List</h1>
<table>
<thead>
<tr id="headers">
<th>Title</th>
<th>Client</th>
<th>Description</th>
<th>Hours</th>
<th>Done</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody class="col-md-2" id="listItems">
<% @projects.each do |project| %>
<tr id="table">
<td><%= project.title %></td>
<td><%= project.client %></td>
<td ><%= project.description %></td>
<td><%= project.hours %></td>
<td><%= check_box_tag "project_#{project.id}", "#{project.done}", "#{project.done? ? 'true':'false'", "#{project.done? ? 'true':'false'" %>
</td>
<td>
<span title="Show">
<%= link_to " #{image_tag('show.png')}".html_safe, project, id:'showButton' %>
</span>
</td>
<td>
<span title="Edit">
<%= link_to " #{image_tag('edit.png')}".html_safe, edit_project_path(project), id:'editButton' %>
</span>
</td>
<td>
<span title="Delete">
<%= link_to " #{image_tag('destroy.png')}".html_safe, project, id:'destroyButton', method: :delete, data: { confirm: 'Are you sure?' } %>
</span>
</td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New Project', new_project_path, id:"new" %>
`
答案 0 :(得分:2)
我很惊讶线<% if project.done("true") %>
没有抛出错误。
您需要显示一个复选框,因此请使用check_box_tag
,然后您可以通过测试项目是否已完成来显示正在检查的内容。
<%= check_box_tag "project_#{project.id}", "#{project.done}", project.done?, disabled: "#{project.done?}" %>
按顺序执行这些操作,此代码将呈现一个复选框:
这个答案中有趣的代码是:
"#{project.done? ? 'true':'false'"
这是内联if / else。部分project.done?
将返回true或false,然后在冒号前输出部分,如果为true,则部分在if之后输出。