2014-09-28 43 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。

相关问题