Je construis un compteur de pages vues pour mon application en utilisant le wrapper Garb Ruby pour l'API Google Analytics. Faire signifie donc la création d'un nouveau module dans le dossier « lib », dans lequel je crée une classe comme ceci:Dans Rails, existe-t-il un moyen d'appeler request.request_uri dans une classe (pas un contrôleur)?
#lib/Analyze.rb
...
class Report
extend Garb::Resource
metrics :pageviews
dimensions :page_path
filters :page_path.eql => '/' #the path of the page I instantiate this class on
end
#followed by a method for instantiating this class
J'ai besoin de filtres: page_path.eql => pour être le chemin de la page dans laquelle j'appelle la méthode. J'ai essayé des choses comme request.request_uri ou url_for (: action => 'show': controllers => 'users': id => params [: id]) mais je ne sais pas comment spécifier le chemin de la page dans cette classe définition.
Que fait passer les données de demande de retour à l'apparence de classe comme? Je sais que je ne peux pas simplement passer une variable dans la définition de classe. Désolé, encore un programmeur assez nouveau. – kateray
Je pense que vous voulez construire un rapport unique pour chaque page - J'ai mis à jour ma réponse – Codebeef
D'accord, cela fonctionne pour moi mais le rend aussi plus lent. Si vous trouvez d'autres façons de le faire, aimez savoir. Merci. – kateray