2014-09-28 78 views
0

在我的應用程序中,我通過指定用戶對象將進入updated_state的某些信息來創建用戶模型。一個星期後,我想要我的對象進入updated_state的日期。我想每週都使用這個值(增加他們的工作時間)。如果沒有在數據庫中存儲這個值,怎麼實現呢?如何在rails中存儲對象的臨時屬性

state_machine :state, :initial => :not_initialized do 
state :not_initialized, :initialized_personal_details, :initialized_office_details, 
     :updated_state 

event :finish_personal_details do 
    transition :not_initialized => :initialized_personal_details 
end 

event :start_office_details do 
    transition :initialized_personal_details => :initialized_office_details 
end 

event :finish_office_details do 
    transition :initialized_office details => :updated_state 
end 

回答

1

您不能使用永久性數據(即沒有在會話中使用的數據),也不能將它們存儲在某個地方。您在這裏有各種選擇:

  • 將它們存儲在數據庫中。看來是最合理的選擇。您可以將它們存儲在對象中,或創建不同的表/數據庫

  • 將它們存儲在不同的數據存儲中。爲什麼不使用redis來做這件事,對於普通的數據庫來說可能是一個很好的補充,有一些很好的功能。

  • 將其存儲在內存中。複雜的,不是特別建議,如果你想成爲「防崩潰」

其他選項:文件,消息隊列,.....

不知道到底爲什麼這是必要的,以及爲什麼數據庫不能使用,這是最好的我可以告訴

+0

感謝您的回覆我會爲了您的方便更新我的問題。 – 2014-09-29 04:06:22

+0

請檢查我的更新。等待解決方案! – 2014-09-29 04:50:07

+0

你沒有解釋爲什麼你不想將值存儲在數據庫中(如果可以使用另一個數據存儲系統)。無論如何,你需要將它存儲在某個地方。我已經提出了不同的解決方案,redis會很好,我認爲 – tomsoft 2014-09-29 07:09:27

0

我解決了這個使用attr_accessor。

相關問題