7
votes

AsettaGhelper :: image_path Vues extérieures

supposé, actioncontroller :: base.helpers aime comme un proxy pour accéder aux aides à l'extérieur de la vue. Cependant, de nombreuses méthodes définies reposent sur des variables de contrôleur et je ne parviens pas à appeler avec succès: xxx

creuser à la source que je vois compute_asset_host méthode tente d'accéder à config.asseet_host mais config est nil .

Comment puis-je appeler avec succès image_path de Vues extérieures?


1 commentaires

Aimerait connaître la même chose!


3 Réponses :


0
votes

Cette solution , posté par Mason Jones, fonctionne pour moi.

dans votre Contrôleur d'application: xxx

alors vous pouvez faire le genre de chose suivant, ou quoi que ce soit d'autre dont vous avez besoin. xxx

vous 'Re Création d'une instance de Singelton de Taghelper dans votre applicationController. Cela vous donne les aides partout où vous en avez besoin. Il l'explique dans son poste.

En outre, j'utilise cela pour étendre mes modèles (pour créer une aide image_Tag plus flexible qui renvoie une image par défaut s'il n'y a pas d'image présente - par exemple, personne.small_image est une instance. variable du modèle de personne qui utilise Tag_Helper). Pour ce faire, j'ai mis le même code dans un initialiseur de patchs de singe qui prolonge Activerecord :: Base. J'appelle ensuite ActiveRecord :: base.tag_helper de mes modèles. C'est un peu désordonné, mais je suis nouveau dans les rails. Il y a probablement une manière plus propre.

espère que cela aide.


0 commentaires

5
votes

Pour les rails 3 Veuillez vérifier la solution beaucoup plus propre ici Comment puis-je utiliser image_path à l'intérieur des rails 3 contrôleur


0 commentaires

12
votes

Utiliser vue_context code> Pour accéder à ces méthodes d'assistant disponibles dans la vue.

Vous pouvez appeler image_path code> comme ceci à partir du contrôleur. P>

view_context.image_path "my_image.png"


0 commentaires