【问题标题】:undefined method `created_at' for ActiveRecord objectActiveRecord 对象的未定义方法“created_at”
【发布时间】:2016-01-27 09:31:24
【问题描述】:

我定义了一个 ActiveRecord 对象,它不知何故没有方法 created_atupdated_at

在控制台中:

a = Alert.find(1)
=> #<Alert id: 1, unread: false, alertable_type: "Comment", alertable_id: 1, membership_id: 1, stake_id: 1>
a.class
=> Alert(id: integer, unread: boolean, alertable_type: string, alertable_id: integer, membership_id: integer, stake_id: integer)
a.is_a? ActiveRecord::Base
=> true
a.created_at
NoMethodError: undefined method `created_at' for #<Alert:0x00000108b83b80>

据我所知,在我的架构或alert.rb 中没有什么奇怪的,尽管我很乐意发布它们。我已经重新启动了我的控制台。我已经检查了我最近的几十个提交,以确保我没有不小心在某个地方触摸了某个配置文件。

我正在对 Alert 对象执行其他 ActiveRecord 方法,例如 update_attributescreated_atupdated_at 也适用于我的其他型号。知道接下来我会去哪里吗?

【问题讨论】:

    标签: ruby-on-rails ruby activerecord


    【解决方案1】:

    从您的数据库中读取活动记录的属性 所以 - 你的警报表中没有 created_at 和 updated_at 字段

    您应该创建迁移以添加该字段

    class AddTimestampsToAlerts < ActiveRecord::Migration
      def change
        change_table(:alerts) do |t| 
          t.timestamps
        end
      end
    end 
    

    【讨论】:

    • 您是否通过重新加载重新加载了控制台!还是重启?
    • 谢谢,何文。是的。我有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    相关资源
    最近更新 更多