2016-06-30 10 views
1

Ich versuche, eine Todo-App zu erstellen, die es dem Benutzer erlaubt, Listen und dann "Todo" -Elemente unter jeder Liste zu erstellen. Allerdings möchte ich jedem Benutzer nur in der Lage sein, seine oder ihre Listen zu sehen. Während ich in der Lage war, es teilweise mit Hilfe des current_user Helfer zu lösen, zeigt die Indexseite leeren Raum, wo die anderen Benutzerlisten ausgeblendet sind.Rendering nur autorisierte (Devise) Benutzerdaten in Rails ohne überschüssiges Leerzeichen

What it looks like in the browser

Nachstehend finden Sie den Code für die index.html.erb Seite in meinem todo_lists Ansichten finden.

<% @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> 

Hier ist meine Repo auf Github, dem Fall, dass Sie mehr von dem Code sehen: https://github.com/jramoscolon/todo

Gibt es eine Möglichkeit, diese leere Räume zu verbergen, sowie die nicht passenden todo Artikel ?

Antwort

0

aktuellen Ansicht Code gegeben, Sie sind <div class="index_row clearfix"> Elemente wahllos zu emittieren, selbst wenn die todo_list.user nicht die current_user überein. Bewegen Sie einfach die ganze <div> außerhalb des current_user Prüfung, etwa so:

<% @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 %> 

Auf diese Weise alle diese leeren <div> Elemente nicht auf der Seite enthalten. Dies sollte den ganzen leeren Raum bereinigen.

0

Wenn Ihre Indexansicht benutzerspezifisch ist, sollten Sie die benutzerspezifische Instanzvariable ebenfalls verwenden.

Statt @todo_lists = ToDoList.all

Verwenden Sie die current_user.todo_lists Funktionalität von Ihrem has_many geliefert/gehört zu

Verwandte Themen