2011-10-09 93 views
4

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

回答

3

不,你不能。以下字段在Rails的

特殊的意义
  • created_atcreated_on
  • updated_atupdated_on

该约定在ActiveRecord代码库的几个部分都是硬编码的,而且从ActiveRecord 3.1开始,这种行为不能使用设置进行配置。

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

1

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

class YourModel 
    alias published_at created_at 
end 

YourModel.first.published_at 

然后在未来,你可以“促进” published_at到它自己的功能。

+0

我有属性id(主键),标签,created_at,published_at,updated_at的表,我想使用created_at作为常规datetime列和published_at与原始功能created_at。我不确定您的解决方案是否可以解决我的问题。 –

+1

在你的例子中,“created_at”提供了哪些功能?如果不是模型创建的日期时间,我强烈建议您重新考虑您要做的事情。 –

相关问题