J'utilise ruby sur rails 2.3.8 et quand j'écris la syntaxe ci-dessous je reçois le message d'erreur "niveau de pile trop profond".Je reçois une erreur "pile niveau trop profond" lors de l'utilisation d'une portée nommée
Le modèle est appelé annonce et la ligne de l'erreur ressemble à ceci:
Tag.find(category_id).announcements.published
Où published
est
named_scope :published, :conditions => "announcements.state = 'published'"
J'utilise cette étendue nommée dans beaucoup d'autres endroits et il fonctionne très bien.
Qu'est-ce que je fais mal? (La relation entre le modèle Tag et Annonce est correcte car si je supprime la méthode ".published" de cette ligne, cela fonctionne très bien).
EDIT:
relations de modèle sont:
class Tagging < ActiveRecord::Base
belongs_to :announcement
belongs_to :tag
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :announcements, :through => :taggings
end
class Announcement < ActiveRecord::Base
has_many :taggings
has_many :tags, :through => :taggings
J'ai débogué toutes les étapes et le problème est quand j'ajoute ".published" à cette ligne. Est-il possible que les relations de mon modèle soient fausses? Je vais éditer mon post avec eux. –