为什么使用Proc.new?

问题描述 投票:-1回答:1

我对这个集合感到好奇:views,Proc.new行。我只是很好奇这到底是什么,为什么要使用Proc.new?我想我不太了解Proc的功能以及此处的逻辑。有人可以帮我清理一下吗?

class ApplicationController < Sinatra::Base
  configure do
    set :views, Proc.new { File.join(root, "../views/") }
    enable :sessions unless test?
    set :session_secret, "secret"
  end
end
ruby-on-rails ruby sinatra
1个回答
1
投票

此过程不是静态的,它采用设置值root并评估视图的路径。这是Sinatra的一个文档:

当设置值为Proc时,每次读取设置都会进行评估,以便可以使用其他设置来计算值

一旦设置了root值,就无需设置视图的完整路径。

© www.soinside.com 2019 - 2024. All rights reserved.