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 %>
War es hilfreich?

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 %>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top