2015-12-19 1 views
1

J'essaie d'obtenir le texte précédant '#' devenir un hashtag dans mon application Rails 4.0.0. J'essaie d'utiliser la gemme ruby ​​simple_hashtag à cet effet. L'erreur que je reçois dans mon post_controller.rb est: undefined method 'hashtags' for #<ActiveRecord::Relation::ActiveRecord_Relation_Post...>Ruby Gem simple_hashtag ne fonctionne pas dans Rails

est ici l'action dans laquelle cette erreur se produit:

def index 
     @posts=Post.sorted 
     @posts.hashtags.each do |hashtag| 
     link_to hashtag.name, path_to_hashtag(hashtag.name) 
     end 
    end 

Voici le modèle post-à-dire post.rb

class Post < ActiveRecord::Base 
    include SimpleHashtag::Hashtaggable 
    hashtaggable_attribute :text 
end 

Tout le monde peut Aidez-moi à courir cette gemme? Merci d'avance.

Répondre

0

Comme l'erreur est la méthode hashtags n'est pas disponible pour ActiveRecord::Relation::ActiveRecord_Relation_Post...>

Comme hashtags est un objet de classe SimpleHashtag :: Hashtag. En outre, cette gem créerait une table simple_hashtag_hashtags.

simple_hashtag_hashtags ne doit pas être vide. Si ce retour en tant que moyen vide n'a aucun enregistrement et lancerait l'erreur comme undefined. Dans le cas où la table n'a aucun enregistrement il semble que vous auriez fait n'importe quelle erreur.

def index 
    @hashtags = SimpleHashtag::Hashtag.all 
    @hashtags.each do |hashtag| 
    link_to hashtag.name, path_to_hashtag(hashtag.name) 
    end 
    end 
+0

Nopes. Même erreur –

+0

Pourriez-vous nous dire ce que retourne _SimpleHashtag :: Hashtag.all_? – VKatz

+0

Voici le résultat:. 'SimpleHashtag :: Hashtag charge (0.0ms) SELECT 'simple_hashtag_hashtags' * FROM 'simple_hashtag_hashtags' => # ' –

0

La gemme n'est pas maintenue activement. Le dernier commit est déjà 2 years old. Il peut ne pas fonctionner avec les versions récentes de Rails.

+0

Ceci est incorrect. Il fonctionne réellement avec les derniers rails tout droit sortis de la boîte –