Ruby on rails 通过标签显示帖子-RubyonRails博客

Ruby on rails 通过标签显示帖子-RubyonRails博客,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个Rails博客进展得很顺利。但是,我似乎无法让我的标记文章显示在他们自己的页面中(例如,我只希望单击该链接时显示标记为Arts&Entertainment的文章) 我的脚手架模型中有一列名为“标签”。它需要一根绳子。所以 1) 如何仅访问特定的标记?我尝试了以下方法: def self.sports find(:all, :tags => 'gainmuscle') end 无济于事 2) 我如何让他们出现在视图中 非常感谢您的帮助。您可以在控制器中定义一种类似以下内容的

我有一个Rails博客进展得很顺利。但是,我似乎无法让我的标记文章显示在他们自己的页面中(例如,我只希望单击该链接时显示标记为Arts&Entertainment的文章)

我的脚手架模型中有一列名为“标签”。它需要一根绳子。所以

1) 如何仅访问特定的标记?我尝试了以下方法:

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

2) 我如何让他们出现在视图中


非常感谢您的帮助。

您可以在控制器中定义一种类似以下内容的方法:

def self.tagged_with
  @articles = Article.tagged(params[:tag]).paginate(default_paginate_options)
end
这里的
taged
是一个
namedscope
。您可以忽略这一点,但该操作会生成所有使用所选标记为
:param
的文章。在本例中,标记是模型文章的一个属性

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

class YourModel < ActiveRecord::Base

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

  ...
end
2) 我认为最好的方法是为一篇文章创建一个包含html代码的分部,然后按如下方式呈现:

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

(您可以在这里查看partials用法:)

仅提及另一种方法;有相当多的宝石来处理这个确切的目的。
可能会很有趣,就我个人而言,我可以投票支持acts_as_taggable_on。这为您提供了很多选项,以后可能也会派上用场。

那么,如果该视图中的文章都是带标签的运动(这是用户输入的字符串),我如何在视图中显示这些选项(例如,体育文章视图)@TopChef:使用:params获取用户输入,然后在控制器中编写类似的方法,以获取已标记为用户给定标记的所有文章。我认为OP仍然在rails 2.x上-我认为“scope”方法是在3.0中引入的(以前是namedscope)。
  render :partial => 'post', :collection => @collection