LocalJumpError,在Rails 2.3.5上使用acts_as_taggable标记Cloud

时间:2009-12-19 15:57:49

标签: ruby-on-rails acts-as-taggable

我正在使用带有2.3.5的acts_as_taggable_on_steroids插件构建标签云,而我不熟悉其视图循环的语法。我找不到任何解释那个循环的ruby文档。

当我运行下面的代码时,我得到了“no block given”错误。

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

我以为我需要将tag_cloud方法添加到我的routes.rb文件中,但这并没有解决问题。

控制器:

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

查看:

  <% 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 %>

1 个答案:

答案 0 :(得分:0)

看起来插件中的TagsHelper没有被包含在内,尽管我将它包含在ApplicationHelper中。

我刚刚将函数tag_cloud复制到我的TagsHelper中,但它确实有效。

为什么我不理解循环是因为它是一个带有循环链接到它的方法调用。 可以这样想想

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