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 に答える