2015-12-26 42 views
2

有人可以向新手解釋Rails中的數據庫中的「updated_at」是如何工作的嗎?說明「updated_at」的工作原理

我想實現一個「last_updated_by」函數,我不知道db如何保存上次updated_at日期並覆蓋前一個。

我試着在爲我的模型更新信息時將用戶名保存爲hidden_​​field_tag的參數,但它使我無處可去。

+0

選項可能包括在控制器中手動設置這樣一個屬性或使用'before_save'生命週期鉤子。請更具體地瞭解您的設置,您想要實現的目標以及迄今爲止所嘗試的內容。我喜歡幫助制定針對特定問題的解決方案。但是,如果你只是想了解Rails是如何工作的,那麼不要求在stackoverflow上。在另一個網站上詢問。或閱讀在線教程和截屏視頻,書籍和博客。 – Raffael

+0

請參閱我更新的問題。您的幫助將非常感謝! – Zelenka

+0

運行生成器時,是否在模型中包含了'last_updated_by'屬性? (或者添加一個包含遷移的數據庫列?)請發佈您的視圖代碼的相關部分,您的控制器代碼和'schema.rb'。 – Raffael

回答

1

首先,我在我的表格中創建了last_edited_by列。 然後我使用我的控制器操作中的update_column方法覆蓋當前用戶名的last_edited_by值。

-1

我不確定是否要保存用戶名或只是對用戶對象的引用。

我建議你使用userstamp寶石,它爲你的模型created_byupdated_by屬性開箱即用,你可以很容易地將其與用戶模型集成。

如果您正在使用Rails 4,我建議你去看看此主題:How to configure userstamp for rails 4

UserStamp不完全支持軌道4,5所以這就是爲什麼你需要看上面的線程。

+0

建議所有初學者在使用寶石作爲速記之前嘗試並充分理解問題。使用寶石並不是所有時間最簡單的方法。在任何情況下,閱讀寶石代碼都是一個好主意,不過:) – Raffael

+0

你怎麼知道哪個用戶在'before_save'回調中調用了更新? – Raffael

+0

是的你是對的我從答案中刪除了,如果我是他,我會去找寶石。 – SsouLlesS