2010-05-22 8 views
1

je en suivant les instructions à l'adresse: http://agilewebdevelopment.com/plugins/acts_as_taggable_on_steroids pour ajouter le nuage de tags à mon avis:fonction d'aide ne se trouve pas vu

dans le contrôleur:

class PostController < ApplicationController 
    def tag_cloud 
     @tags = Post.tag_counts 
    end 
end 

J'ai aussi ajouté la méthode tag_cloud comme procédé auxiliaire dans le contrôleur

et dans la vue:

<% tag_cloud @tags, %w(css1 css2 css3 css4) do |tag, css_class| %>     (line 1) 
    <%= link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class %> (line2) 
<% end %> (line 3) 

Cependant:

1) si je ne fais pas le helper_method :tag_cloud dans le contrôleur j'obtiens une erreur undefined method pour tag_cloud

2) si je fais ajouter la méthode d'aide que je reçois: wrong number of arguments (2 for 0) sur la même ligne 1 mon exemple de code ci-dessus.

Suggestions?

SOLUTION J'ai fini par ne pas faire ce que j'avais comme exemple de code dans la vue.

Au lieu de cela je l'ai fait:

<% @post.tags.each do |tag| %> 
    <%= link_to(tag.name,tag,:class => "tag_cloud_item_link") %> 
<% end %> 

Répondre

2

1.

Les méthodes définies dans le contrôleur ne sont pas accessibles à des vues sauf si vous ajoutez (comme vous le mentionnez) l'appel helper_method.

2.

Votre méthode tag_cloud que vous avez définie comme aide dans votre contrôleur ne prend pas de paramètres, mais vous essayez d'appeler tag_cloud avec @tags, %w(css1...), & un bloc. La méthode tag_cloud renverra une variable d'instance @tags et c'est tout.

De l'article que vous avez fourni que vous travaillez, avez-vous include TagsHelper dans votre ApplicationHelper? Je devine que cela définit une méthode d'assistance tag_cloud qui acceptera les paramètres que vous essayez de transmettre.

+0

oui, j'ai inclus le taghelper dans l'apphelper. – cbrulak

+0

Tout le reste fonctionne-t-il correctement? Cela semble être soit un conflit de quelque sorte ou le plugin n'est pas chargé correctement. Avez-vous redémarré votre application depuis que vous avez installé le plugin (je sais que cela semble idiot). Pourriez-vous coller votre erreur complète? – theIV

+0

recharger et d'autres choses fonctionnent correctement. J'ai trouvé un travail en utilisant @tags = tag_cloud, puis @ tags.each. Je vais poster plus de code et d'erreurs dans un peu, merci – cbrulak

1

J'ai le même problème. Tout comme l'OP, Déplacer la méthode d'assistance "tag_cloud" vers le TagHelper a semblé se débarrasser d'un problème, mais crée l'erreur "nombre incorrect d'arguments" dans le processus.

cbrulak a dit qu'il a trouvé un travail. Pouvez-vous nous mettre à jour et éventuellement envoyer un PM aux auteurs "Acts-as-taggable-on" au https://github.com/mbleigh/acts-as-taggable-on

Questions connexes