2012-05-12 3 views
3

J'ai une application Rails avec id impressionniste et sympathique, je veux afficher les pages vues dans mes articles. Le problème est que l'impressionniste n'enregistre pas le nombre de vues.Impressionist gem et Friendly_id

C'est le même problème here on impressionist's bug tracker.

Mes articles Modèle:

class Article < ActiveRecord::Base 
    is_impressionable 
    extend FriendlyId 
    friendly_id :title, use: [:slugged, :history] 
    belongs_to :user 
    belongs_to :category 

articles contrôleur:

def show 
    @article = Article.find(params[:id]) 

    if request.path != article_path(@article) 
    redirect_to @article, status: :moved_permanently 
    end 
    respond_to do |format| 
    format.html 
    format.json { render json: @article } 
    end  
end 

J'ai aussi redémarré le serveur, mais ayant la même question.

Répondre

9

Ok, il y a un travail autour. Il suffit d'ajouter impressioniste (@model) dans le contrôleur show

def show 
    @article = Article.find(params[:id]) 
    impressionist(@article) 

    if request.path != article_path(@article) 
     redirect_to @article, status: :moved_permanently 
    end 
    respond_to do |format| 
    format.html 
    format.json { render json: @article } 
    end  
end 
+0

Remarque également supprimer l'appel impressioniste du contrôleur comme indiqué à l'étape 4 dans le wiki: https : //github.com/charlotte-ruby/impressionist#usage. –

1

Petite astuce pour une fonctionnalité unique:

def show 
    @article = Article.find(params[:id]) 
    impressionist(@article, nil, { unique: [:session_hash] }) 
end 
Questions connexes