4

Cette action du contrôleur a parfaitement fonctionné dans Rails 2.3.x:Uninitialized Tag constante dans Rails 3 avec Acts_As_Taggable_On

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 

Mais lors de la migration à mon application Rails 3 Je lance cette erreur dans les balises # show:

uninitialized constant TagsController::Tag 

Il n'aime pas la constante Tag. Quelqu'un d'autre a-t-il eu ce problème? J'utilise Rails 3.0.0RC et Ruby 1.9.2.

+0

Quelqu'un sait ce qui se passe ici? – BasicObject

Répondre

12

Essayez d'inclure l'espace de noms complet, par ex.

@title = ActsAsTaggableOn::Tag.find(params[:id]).name 
+0

Très utile! mais c'est évidemment beaucoup à taper. Y at-il un moyen facile de le configurer afin que vous puissiez simplement vous référer à "Tag"? –

9

Vous pouvez également définir le modèle dans votre application:

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

# app/models/tagging.rb 
class Tagging < ActsAsTaggableOn::Tagging 
end 
+0

C'est de loin la meilleure solution. Chaque application devrait le faire. (Cela nous a juste sauvé d'un problème Ruby 1.9.3) – ndbroadbent

Questions connexes