从控制器,我可以创建/更新会话变量。
def action
...
session[:var] = "success"
end
当我从同一个控制器动作调用服务对象时,同一行代码不能更新服务对象中的同一会话变量。
def action
...
ServiceObject.new(@user).write
end
我收到此错误:
undefined local variable or method `session' for #<ServiceObject:########>
为什么呢?有没有办法从服务对象中更新会话变量?我想这样做,以便会话变量将反映服务对象的状态,具体取决于正在运行的内容。
答案 0 :(得分:2)
您可以存储服务对象作业ID并查看手动查找作业的状态吗?您还可以在支持服务对象的数据库或某种类型的Job中创建一条记录,并在会话中存储该ID,并偶尔获取并检查db记录的status属性。