1

我正在使用带有 rails 2.3.5 的acts_as_taggable_on_steroids插件来构建标签云,但我不熟悉他们的视图循环的语法。我也找不到任何解释该循环的 ruby​​ 文档。

当我运行下面的代码时,我得到这个“没有给出块”错误。

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

1 回答 1

0

尽管我将其包含在 ApplicationHelper 中,但插件中的 TagsHelper 似乎并未包含在内。

我刚刚将函数 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 %>
于 2009-12-19T16:36:03.703 回答