4

这个控制器动作在 Rails 2.3.x 中完美运行:

def show
  @title = Tag.find(params[:id]).name
  @tag = Tag.find(params[:id])
  @messages = Post.paginate(Post.find_tagged_with(@tag), 
              :page => params[:page], :per_page => 10, :order => "updated_at DESC")
  @related_tags = @related_entries.collect{|x|x.tags}.flatten.uniq
  @related_tags.delete(@tag)
end

但是在将我的应用程序迁移到 Rails 3 时,我在 Tags#show 中遇到了这个错误:

uninitialized constant TagsController::Tag

它不喜欢Tag常数。其他人遇到过这个问题吗?

我正在使用 Rails 3.0.0RC 和 Ruby 1.9.2。

4

2 回答 2

12

尝试包括完整的命名空间,例如

@title = ActsAsTaggableOn::Tag.find(params[:id]).name
于 2010-08-27T14:21:34.637 回答
10

您还可以在应用程序中定义模型:

# app/models/tag.rb
class Tag < ActsAsTaggableOn::Tag
end

# app/models/tagging.rb
class Tagging < ActsAsTaggableOn::Tagging
end
于 2011-02-01T00:31:06.823 回答