从应用程序布局调用控制器操作

发布于 2024-10-27 03:23:41 字数 770 浏览 0 评论 0原文

我的帖子/索引视图中有此代码:

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

I have this code in my posts/index view:

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

This is my controller:

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

I want to move tag cloud from index view to the application layout, but I don't know how to call controller action method from there.

Also, I'm in doubt, is this MVC safe? Any advices please.

I'm using gem 'acts-as-taggable-on'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只怪假的太真实 2024-11-03 03:23:41

将 tag_cloude 的代码移至

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

ApplicationHelper,然后您可以在应用程序布局中使用它 <%= tag_cloud %>

Move the code of tag_cloude

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

to the ApplicationHelper then you can use it <%= tag_cloud %> in your layout of the application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文