2009-10-30 8 views
1

je code comme:Rails actif objet d'enregistrement provoque une erreur lorsque je tente d'accéder à un attribut

@notifications = Notification.find_all_by_user_id(@user.id, :order=>'deliver_by DESC', :conditions=>"deliver_by >= '#{Date.today.to_s(:db)}'") 
    logger.info @upcoming_reminders[0].inspect 
    logger.info @upcoming_reminders[0].class 
    logger.info @upcoming_reminders[0].id 
    logger.info "--------------------------" 

Le résultat connecté est

#<TwitterNotification id: 1, user_id: 3, message: "Testing", deliver_by: "2009-10-30 16:00:00", created_at: "2009-10-13 12:00:45", updated_at: "2009-10-28 20:01:03", processed_at: "2009-10-13 20:00:06", type: "TwitterNotification"> 
TwitterNotification 

ArgumentError (wrong number of arguments (1 for 0)): 
    app/controllers/reminders_controller.rb:57:in `get_reminders' 

Comme vous pouvez le voir, je reçois une erreur d'argument lorsque essayer d'accéder à l'ID. Cela se produit réellement lorsque j'essaie d'accéder à n'importe quel attribut. Cela peut être un cas de regarder l'ordinateur trop longtemps, mais je n'ai pas été en mesure de le comprendre. Des idées? Notez que TwitterNotification est une sous-classe de Notification implémentée à l'aide de Single Table Inheritance.

Merci!

MISE À JOUR

je fait un peu de progrès, cela fonctionne très bien:

logger.info @upcoming_reminders[0][:id] 

donc accéder à l'objet d'enregistrement actif attributs avec un symbole fonctionne très bien, mais la notation par points ne fonctionne pas. Une idée pourquoi?

+0

Où est défini le tableau @upcoming_reminders? – EmFi

Répondre

1

Ok, pas un cas de regarder mon ordinateur trop longtemps. J'ai créé une méthode appelée envoyer dans mon modèle qui ne semble pas être autorisée.

+1

Vous avez écrasé Object # send (http://ruby-doc.org/core/classes/Object.html#M000332) –

Questions connexes