Действие контроллера вызова из макета приложения - PullRequest
3 голосов
/ 24 марта 2011

У меня есть этот код в моих сообщениях / просмотр индекса:

 -tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class|
    = link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class

Это мой контроллер:

def index
    @posts = Post.page(params[:page]).per(5)
    tag_cloud
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @posts }
    end
end

def tag
  @posts = Post.tagged_with(params[:id]).page(params[:page]).per(5)
  @tags = Post.tag_counts_on(:tags)
  render :template => 'posts/index'
end

def tag_cloud
  @tags ||= Post.tag_counts_on(:tags)
end

Я хочу переместить облако тегов из представления индекса в макет приложения, но я не знаю, как оттуда вызвать метод действия контроллера.

Кроме того, я сомневаюсь, это MVC безопасно? Любые советы, пожалуйста.

Я использую gem 'acts-as-taggable-on'

1 Ответ

7 голосов
/ 24 марта 2011

Переместите код tag_cloude

 def tag_cloud
  @tags ||= Post.tag_counts_on(:tags)
 end

на ApplicationHelper, затем вы можете использовать его <%= tag_cloud %> в макете приложения.

...