【问题标题】:Rails active record object causes error when i try to access any attribute当我尝试访问任何属性时,Rails 活动记录对象会导致错误
【发布时间】:2009-10-30 20:58:00
【问题描述】:

我有这样的代码:

@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 是使用单表继承实现的 Notification 的子类。

谢谢!

更新

我取得了一点进步,这很好用:

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

因此,使用符号访问活动记录对象属性可以正常工作,但点符号不能。知道为什么吗?

【问题讨论】:

  • @upcoming_reminders 数组在哪里定义?

标签: ruby-on-rails activerecord argument-error


【解决方案1】:

好吧,不是盯着我的电脑太久的情况。我在我的模型中创建了一个名为 send 的方法,这似乎是不允许的。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 2021-05-21
  • 2023-03-17
相关资源
最近更新 更多