我正在使用带有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 %>
答案 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 %>