自定义“created_at”列Ruby on Rails

时间:2011-10-09 18:46:13

标签: ruby-on-rails activerecord

我是Ruby on Rails的新手,但我想知道是否有可能将“created_at”列的默认名称(用于存储新对象的创建日期和时间的属性)更改为名为eg的列。 “published_at”,其功能没有变化。

2 个答案:

答案 0 :(得分:3)

不,你不能。以下字段在Rails中具有特殊含义

  • created_atcreated_on
  • updated_atupdated_on

此约定在ActiveRecord代码库的几个部分中进行了硬编码,并且从ActiveRecord 3.1开始,此行为无法使用设置进行配置。

如果存在这些字段中的一个(或多个),则会在创建/修改记录时更新。您需要为您的功能找到不同的名称。

答案 1 :(得分:1)

我可能不会尝试更改时间戳...将来,您可能希望将发布作为状态实现。所以,今天,你可以

class YourModel
  alias published_at created_at  
end

YourModel.first.published_at

接下来,您可以“将'published_at'推广到它自己的功能。