LocalJumPerror, Tag -Cloud mit ACTS_AS_TAGGABLE auf Rails 2.3.5
-
20-09-2019 - |
Frage
Ich benutze ACTS_AS_TAGGABLABLE_ON_STERNOIDS Plugin mit Rails 2.3.5, um eine Tag -Cloud zu erstellen, und ich bin mit der Syntax ihrer Ansichtsschleife nicht vertraut. Ich konnte auch keinen Ruby -Doc finden, der diese Schleife erklärte.
Wenn ich den folgenden Code ausführe, erhalte ich diesen Fehler "No Block angegeben".
LocalJumpError in Tags#index
Showing app/views/tags/index.html.erb where line #10 raised:
no block given
Ich dachte, ich müsste die methodische tag_cloud zu meiner Datei routes.rb hinzufügen, aber das hat das Problem nicht gelöst.
Regler:
class PostController < ApplicationController
def tag_cloud
@tags = Post.tag_counts
end
end
Aussicht:
<% 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 %>
Lösung
Sieht so aus, als würde der Tagshelper im Plugin trotz mir in ApplicationHelper nicht enthalten.
Ich habe gerade die Funktion tag_cloud in mein Tagshelper kopiert und es hat funktioniert.
Warum ich diese Schleife nicht verstanden habe, war, weil es sich um einen Methodenruf handelt, der mit einer daran geketteten Schleife gekettet wurde. Stellen Sie sich das so vor
<% tag_cloud( @tags, %w(css1 css2 css3 css4) ) do |tag, css_class| %>
<%= link_to tag.name, tags_path(tag), :class => css_class %>
<% end %>