2011-10-09 94 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」提供了哪些功能?如果不是模型創建的日期時間,我強烈建議您重新考慮您要做的事情。 –

相關問題