所以我需要实例化一个需要参数的对象。我还需要在实例化后在整个控制器的范围内使用此对象。如何才能做到这一点?
编辑:一些代码来帮助说明
def beginLoad(user, category)
#stuff
@gaobj = GraphAssistant.new(@arrays.fetch(0), @arrays.fetch(1))
values = @gaobj.externalize
ret = {"axis_label" => values.fetch(0), "out" => values.fetch(1), "i" => values.fetch(2)}
end
但是当我尝试再次使用此方法调用它时:
def resumeLoad(direction)
if direction.eql? "left"
@gaobj.decrementPosition
elsif direction.eql? "right"
@gaobj.incrementPosition
end
#other stuff
end
它不起作用。我想我可以在视图中完成所有这些逻辑,但这会对性能产生什么影响呢?
答案 0 :(得分:0)
使用@sign前缀:@foo = Foo.new
。
更新:听起来你需要这个持续到会话。
在beginLoad结束时,添加:
session[:foo] = @foo
在resumeLoad的开头,添加:
@foo = session[:foo]
答案 1 :(得分:0)
如果从同一控制器操作调用这两个函数,则两者都应该可以访问实例变量(@gaobj
)。您需要确保在#beginLoad
之前为每个传入请求调用#resumeLoad
。这是问题吗?