Ruby on rails 等待变量被定义

Ruby on rails 等待变量被定义,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在Rails控制器中有以下代码: def show doc = Document.find(params[:id]) session = Crocodoc.get_session(doc.uuid) @url = Crocodoc.session_based_viewer_url(session[:sessionId]) end 我需要等到定义了会话(或者等待crocodc.get_session返回)之后才能显示视图。这应该如何处理?它已经处理好了。视图在控制器操

我在Rails控制器中有以下代码:

def show
  doc     = Document.find(params[:id])
  session = Crocodoc.get_session(doc.uuid)
  @url    = Crocodoc.session_based_viewer_url(session[:sessionId])
end

我需要等到定义了
会话
(或者等待
crocodc.get_session
返回)之后才能显示视图。这应该如何处理?

它已经处理好了。视图在控制器操作返回后立即渲染(除非在操作期间显式渲染)。此时,
会话
将超出范围,但将定义
@url

我发现我必须将@url实例变量重命名为其他变量才能将其传递到视图。

谢谢。但我没有得到的是,如果我在控制台中运行它,它是好的,但是在浏览器中查看,
@url
会话
在视图中为零。我原以为你说的会是这样,但后来我想可能是因为
Crocodoc.get_session
是一个API请求(读:上网),在视图显示之前它不会返回。@Michael Irwin,可能是
@url
在操作期间被分配了
nil
。分配
@url
后,在退出操作之前,使用
puts
调试器测试
@url
的值。如果正在渲染视图,则
get\u session
将返回一些内容。