0

J'ai une page de publication avec un bouton lien <a href=""> cohérent en elle. Je dois montrer lien cliqué nombre pour chaque poste. Je l'ai déjà colonnes de table commeSimple <a href> cliquez sur compteur avec Rails 5 sans utiliser la gemme

t.integer "count_click" 

Comment puis-je faire ce compteur dans la forme la plus simple possible?

<%= link_to @post.reference_title, @post.reference_url, target: :_blank %> 

Je peux probablement y arriver avec une simple requête SQL dans le contrôleur, à droite? Mais je n'ai aucune idée de comment le déclencher avec clic

Merci!

+0

Qu'en est-il du [suivi des événements google analytics] (https://developers.google.com/anal ytics/devguides/collection/analyticsjs/événements)? Ou, dans votre application, vous pouvez faire la mise à jour dans le contrôleur que le lien va. – user3366016

+0

Quelle sera la différence entre le nombre de clics et le nombre de vues, si à chaque fois que vous cliquez sur quelque chose, vous le visualisez? – Leito

+0

Salut @ user3366016, aucune idée à propos de cette chose de google :) Je suis à la recherche de cela. J'ai essayé de faire dans le contrôleur, mais a échoué. J'ai mis à jour ma question. – Designer

Répondre

1

Pour une implémentation de base, selon mes commentaires, je le ferais dans l'action du contrôleur. Je suppose que je ferais tout dans la même action pour votre exemple.

Pour votre question initiale, il y avait 2 compteurs:

t.integer "count_click" 
t.integer "count_view" 

Je vais essayer d'ajouter un lien au param lui-même qui passerait en cliquant dessus:

<%= link_to @post.reference_title, reference_url(@post, clicked: true), target: :_blank %> 

Pour une implémentation de base vous pouvez incrémenter comme ceci:

def reference 
    # Increment the view counter whenever page loads. 
    Post.increment_counter(:count_view, @post.id) 
    # Increment the click counter if the link was clicked based on param. 
    Post.increment_counter(:count_click, @post.id) if params[:clicked] == "true" 
end 
+0

Merci! count_view fonctionne très bien :) J'ai fait une erreur évidente idiot là-dedans :) mais le décompte de clic donne l'erreur ** mauvais nombre d'arguments (donné 1, attendu 0) ** Je suppose, ne peut pas le passer comme @ post.reference_url (cliqué: vrai) – Designer

+0

@Designer J'ai mis à jour le lien. Je ne suis pas sûr que vos itinéraires ... et maintenant que je regarde ceci, est-ce un itinéraire dans votre application ou est-ce un attribut sur votre modèle qui stocke une URL? Est-ce que cette URL va à une page de votre application? – user3366016

+0

Maintenant, j'obtiens la méthode ** undefined 'reference_url 'pour l'erreur # <# : 0x007fea7e8197d0> **. mais je vois ce que vous suggérez là. J'essaie des variantes d'implémentation qui ont cliqué sur: true ** là-dedans. Merci – Designer