我有一个应用程序,其中attr_accessor用于保存模型的临时数据,该模型将传递给rake任务.看到没有这些属性的数据库字段,并且它们不是从数据库数据计算的,attr_accessor数据是否会持续存在并且可用于rake任务?如果我需要重新启动服务器会发生什么 - 如果数据没有保存到数据库,数据会丢失吗?或者为了解决这个问题,我是否需要保存到临时文件或数据库字段?
我假设您在询问通过Rake任务访问它们时,存储在源自Web请求的ActiveRecord对象属性中的数据是否可用?
不,他们不会.该数据甚至无法用于下一个Web请求.如果您加载两次相同的记录,那么该数据甚至不会存在.
class Thing < ActiveRecord::Base attr_accessor :data end #try this in script/console thing = Thing.find(:first) thing.data = "Something" thing = Thing.find(:first) puts thing.data -> nil