如何从服务对象创建/更新会话变量?

时间:2015-11-29 06:24:05

标签: ruby-on-rails session session-variables

从控制器,我可以创建/更新会话变量。

def action
  ...
  session[:var] = "success"
end

当我从同一个控制器动作调用服务对象时,同一行代码不能更新服务对象中的同一会话变量。

def action
  ...
  ServiceObject.new(@user).write
end

我收到此错误:

undefined local variable or method `session' for #<ServiceObject:########>

为什么呢?有没有办法从服务对象中更新会话变量?我想这样做,以便会话变量将反映服务对象的状态,具体取决于正在运行的内容。

1 个答案:

答案 0 :(得分:2)

您可以存储服务对象作业ID并查看手动查找作业的状态吗?您还可以在支持服务对象的数据库或某种类型的Job中创建一条记录,并在会话中存储该ID,并偶尔获取并检查db记录的status属性。