supposé, creuser à la source que je vois Comment puis-je appeler avec succès actioncontroller :: base.helpers code> 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:
compute_asset_host code> méthode tente d'accéder à
config.asseet_host code> mais
config code> est
nil code>. p>
image_path code> de Vues extérieures? P> P>
3 Réponses :
Cette solution , posté par Mason Jones, fonctionne pour moi.
dans votre Contrôleur d'application: p> alors vous pouvez faire le genre de chose suivant, ou quoi que ce soit d'autre dont vous avez besoin. p> 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. P> 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. P> espère que cela aide. P> p>
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 p>
Utiliser Vous pouvez appeler vue_context code> Pour accéder à ces méthodes d'assistant disponibles dans la vue.
image_path code> comme ceci à partir du contrôleur. P>
view_context.image_path "my_image.png"
Aimerait connaître la même chose!