按标签显示帖子 - Ruby on Rails博客

时间:2011-12-09 07:10:41

标签: ruby-on-rails ruby

我有一个很好的Rails博客。但是,我似乎无法将我的标记文章显示在他们自己的页面中(例如,我只想标记Arts& Entertainment的文章在点击该链接时显示)。

我的脚手架模型中有一个名为标签的列。它需要一个字符串。所以

1)如何仅访问特定标签?我试过以下的东西:

def self.sports
    find(:all, :tags => 'gainmuscle')
end

无济于事。

2)如何让它们显示在视图中?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

您可以在控制器中定义类似于此的方法:

def self.tagged_with
  @articles = Article.tagged(params[:tag]).paginate(default_paginate_options)
end

此处taggednamedscope。您可以忽略这一点,但该操作会生成所有标记为选中为:param的标记的文章。在这种情况下,Tag是模型Article的属性。

答案 1 :(得分:1)

1)在这里你可以使用模型中的范围:

class YourModel < ActiveRecord::Base

  scope :by_tag, lambda{|tag| where(:tag => tag)}

  ...
end

然后在控制器中:

  @collection = YourModel.by_tag("gainmuscle")

2)我想说最好的方法是为1个单个帖子创建一个带有html代码的部分,然后以这种方式呈现:

  render :partial => 'post', :collection => @collection

(您可以在此检查部分用法:http://apidock.com/rails/ActionView/Partials

答案 2 :(得分:0)

提到另一种方法;有很多宝石可以解决这个问题。 This可能很有趣,我个人可以为acts_as_taggable_on投票。这为您提供了很多选项,以后可能会派上用场。