ActiveRecord对象的未定义方法`created_at'

时间:2016-01-27 00:21:25

标签: ruby-on-rails ruby activerecord

我已经定义了一个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也正常用于其他模型。我知道接下来要去哪儿了?

1 个答案:

答案 0 :(得分:2)

活动记录读取归因于您的数据库 所以 - 警报表中没有created_at和updated_at字段

您应该创建用于添加字段的迁移

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