1

タグ クラウドを構築するために rails 2.3.5 でacts_as_taggable_on_steroidsプラグインを使用していますが、それらのビュー ループの構文に慣れていません。そのループを説明するルビードキュメントも見つかりませんでした。

以下のコードを実行すると、この「ブロックが指定されていません」というエラーが表示されます。

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

route.rb ファイルに tag_cloud メソッドを追加する必要があると思いましたが、それでも問題は解決しませんでした。

コントローラ:

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 に答える