Comment trouver et afficher un groupe d'objets avec une balise spécifique en utilisant agit comme une balise (redux)?

StackOverflow https://stackoverflow.com/questions/1019747

Question

Je souhaite afficher une liste d'articles dans l'affichage de mon tag. J'utilise le plug-in redg tagable dans une application Rails 2.3.2 et SQLite3. J'ai aussi loin que exemple de base me prend, attribue des tags puis en affichant une liste avec l'article.

Je souhaite maintenant afficher une liste d'articles appartenant à une balise, mais l'erreur suivante apparaît:

undefined method `article' for #<Tag id: 1, name: "various", taggings_count: 1>

Modèles

/article.rb

class Article < ActiveRecord::Base  
  acts_as_taggable
end

/user.rb

class Tag < ActiveRecord::Base  
  acts_as_tagger
end  

Contrôleur

/tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.articles
end  

Afficher

/tags/show.html.erb

<% for article in @articles %>  
   ...  
<% end %>  

Voici un lien vers le fichier de migration .

Merci beaucoup.

Était-ce utile?

La solution 3

Un grand merci à Geemus, auteur d’actes en tant que redux étiquetable pour me l’avoir expliqué.

Pour afficher une liste d'articles avec une balise spécifique, il me suffisait de modifier le paramètre tags_controller de:

/tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.articles
end

à:

Contrôleur /tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.tagged
end

Autres conseils

Je pense que le plugin n’est pas à blâmer ici, c’est le sqlite qui vous cause des problèmes. J'ai déjà rencontré celui-ci auparavant - il semble que sqlite ne comprenne pas la syntaxe 'nom_table.nom_colonne', même si elle n'est pas mentionnée sur le site Web. Dans mon cas, je viens de passer à MySQL, et tout s'est passé sans problème. Voir si cela aide.

Le problème est que vous avez un modèle nommé Object. Donnez-lui un nom qui ne chevauche pas les classes système Ruby, telles que ApplicationObject ou MediaObject.

Je pourrais spéculer sur les raisons pour lesquelles cela cause les problèmes, mais ce ne serait que spéculation. Les classes ouvertes sont une fonctionnalité merveilleuse de Ruby, mais cela signifie que vous devez nommer vos classes avec soin afin qu'elles soient distinctes des classes de Ruby's et de Rail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top