2017-09-06 4 views
0

Ich bin nach dieser Stackoverflow Post, How can i store and show only the last 5 NEWS seen by the current user?Nur die letzten 5 Artikel des aktuellen Benutzers anzeigen?

Aber ich denke, ich diese Störung erhalte (nicht Artikel mit ‚id‘ = python-0 finden kann), weil ich friendly_id gem bin mit dem Artikel zu erzeugen, url. Gibt es einen Workaround dafür?

Anwendungs ​​Controller

before_action :recently_viewed_articles 

    def recently_viewed_articles 
    session[:article_id] ||= [] 
    session[:article_id] << params[:id] unless params[:id].nil? 
    session[:article_id].delete_at(0) if session[:article_id].size >= 5 
    end 

Seiten-Controller

def home 
    @recent_articles = session[:article_id] 
    @feed = current_user.feed 
end 

_feed.html.erb

<div class = "container"> 
    <div class = "row"> 
    <div class = "col-md-9"> 
     <%= render @feed %> 
    </div> 
    <div class = "col-md-3"> 
     <div class="list-group"> 
      <button type="button" class="list-group-item list-group-item-action active"> 
      Recently visited 
      </button> 
     <% @recent_articles.each do |recent| %> 
      <button type="button" class="list-group-item list-group-item-action"> 
      <%= link_to "#{Article.find(recent).title}", article_path(Article.find(recent)) %> 
      </button> 
     <% end %> 
     </div> 
    </div> 
    </div> 
</div> 

Antwort

0

Per Dokumentation, ich glaube, Sie friendly Umfang verwenden sollten.

Article.friendly.find(recent) 
+0

Ohh nennen. Vielen Dank! – doyz

0

https://github.com/norman/friendly_id

Haben Sie alles eingerichtet, wie Sie tun? Wenn Sie nicht haben, dann können Sie verwenden:

Article.friendly.find('python-0') 

Ansonsten in Ihrem Artikel Modell:

friendly_id :title, use: [:slugged, :finders] 

Dann können Sie diese arbeitete

Article.find('python-0') 
Verwandte Themen