我已经定义了一个ActiveRecord对象,它在某种程度上没有方法created_at
或updated_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_attributes
。 created_at
和updated_at
也正常用于其他模型。我知道接下来要去哪儿了?
答案 0 :(得分:2)
活动记录读取归因于您的数据库 所以 - 警报表中没有created_at和updated_at字段
您应该创建用于添加字段的迁移
class AddTimestampsToAlerts < ActiveRecord::Migration
def change
change_table(:alerts) do |t|
t.timestamps
end
end
end