2009-12-19 4 views
1

J'utilise le plugin acts_as_taggable_on_steroids avec les rails 2.3.5 pour construire un nuage de tags et je ne suis pas familier avec la syntaxe de leur boucle de vue. Je n'ai pas trouvé de doc ruby ​​expliquant cette boucle non plus.LocalJumpError, Tag Cloud avec acts_as_taggable sur Rails 2.3.5

Lorsque j'exécute le code ci-dessous, j'obtiens cette erreur "aucun bloc donné".

LocalJumpError in Tags#index 
Showing app/views/tags/index.html.erb where line #10 raised: 
no block given 

Je pensais que je devais ajouter la méthode tag_cloud à mon dossier routes.rb mais cela ne résout pas le problème.

Controller:

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

Vue:

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

Répondre

0

On dirait que le TagsHelper dans le plug-in n'était pas inclus malgré moi y compris dans ApplicationHelper.

Je viens de copier la fonction tag_cloud dans mon TagsHelper et cela a fonctionné. Pourquoi je n'ai pas compris que cette boucle était parce que c'est un appel de méthode avec une boucle chaînée à elle. Pensez-y comme ceci

<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %> 
    <%= link_to tag.name, tags_path(tag), :class => css_class %> 
<% end %> 
Questions connexes