2010-05-31 2 views
0

J'ai une liste de notification que l'utilisateur peut sélectionner différentes options d'affichage pour différents types de notifications ainsi que le nombre de résultats sont retournés. Je les garde dans le modèle utilisateur parce que je veux que le tri personnalisé reste avec l'utilisateur entre les sessions. Voici l'association dans mon modèle d'utilisateur:Les champs de base de données n'apparaissent pas dans les requêtes personnalisées d'association?

has_many :notifications, 
     :class_name => "Notification", 
     :foreign_key => "user_id", 
     :conditions => ["won = ? and lost = ? and paid = ?", self.prefs_won, self.prefs_lost, self.prefs_paid], 
     :limit => self.prefs_results.to_s 

Mais quand j'utilise le code ci-dessus, Rails me renvoie une erreur « méthode inconnue » pour self.prefs_won. C'est certainement un champ dans ma base de données et défini comme une valeur booléenne, mais Rails ne peut pas le trouver ... quel est le problème?

EDIT:

Voici la migration:

t.boolean :prefs_won, :default => true 
    t.boolean :prefs_lost, :default => true 
    t.boolean :prefs_paid, :default => true 
    t.integer :prefs_results, :default => 10 

Répondre

1

ActiveRecord accesseurs pour les attributs booléens ont un point d'interrogation à la fin du nom d'attribut. Essayez plutôt self.prefs_won?.

+0

Vous obtenez toujours une erreur: "méthode non définie' prefs_won? ' pour # ". – Kevin

Questions connexes