我正在尝试创建一个todo应用程序,允许用户创建列表,然后在每个列表下“todo”项目。但是,我希望每个用户只能 才能看到他或她的列表。虽然我已经能够使用current_user
帮助程序部分地解决它,但索引页面显示空白空间,其他用户列表被隐藏。
请在我的todo_lists视图中找到index.html.erb页面的代码。
<% @todo_lists.each do |todo_list| %>
<div class="index_row clearfix">
<% if todo_list.user == current_user %>
<h2 class="todo_list_title"><%= link_to todo_list.title, todo_list %></h2>
<p class="todo_list_sub_title"><%= todo_list.description %></p>
<p><%= todo_list.user.first_name %></p>
<% end %>
</div>
<% end %>
<div class="links">
<%= link_to "New Todo List", new_todo_list_path %>
</div>
这是我在Github上的回购,以防您需要查看更多代码:https://github.com/jramoscolon/todo
有没有办法隐藏这些空白区域以及不匹配的待办事项?
答案 0 :(得分:0)
如果您的索引视图是特定于用户的,那么您想要的实例变量也应该是用户特定的。
而不是@todo_lists = ToDoList.all
使用has_many /所属的current_user.todo_lists
功能
答案 1 :(得分:0)
根据您当前的观看代码,即使<div class="index_row clearfix">
与todo_list.user
不匹配,您也会不加选择地发出current_user
元素。只需将整个<div>
移到current_user
支票之外,就像这样:
<% @todo_lists.each do |todo_list| %>
<% if todo_list.user == current_user %>
<div class="index_row clearfix">
<h2 class="todo_list_title"><%= link_to todo_list.title, todo_list %></h2>
<p class="todo_list_sub_title"><%= todo_list.description %></p>
<p><%= todo_list.user.first_name %></p>
</div>
<% end %>
<% end %>
这样,所有这些空的<div>
元素都不会包含在页面中。这应该清理所有空白区域。