1

私は次のようなコードを持っています:

@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 "--------------------------"

記録された結果は

#<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'

ご覧のとおり、id にアクセスしようとすると引数エラーが発生します。これは、実際に属性にアクセスしようとすると発生します。これは、コンピューターを長時間見つめすぎた場合かもしれませんが、私はそれを理解できませんでした. 何か案は?TwitterNotification は、Single Table Inheritance を使用して実装された Notification のサブクラスであることに注意してください。

ありがとう!

アップデート

私は少し進歩しました、これはうまくいきます:

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

そのため、シンボルを使用したアクティブ レコード オブジェクトの属性へのアクセスは正常に機能しますが、ドット表記は機能しません。理由はありますか?

4

1 に答える 1

1

コンピューターを長時間見つめすぎても問題ありません。モデルで send というメソッドを作成しましたが、これは許可されていないようです。

于 2009-10-30T21:43:37.760 に答える