如何使用Proc.new

How to use Proc.new

我对这行很好奇:

set :views, Proc.new

它有什么作用,为什么要使用 Proc.new

class ApplicationController < Sinatra::Base
  configure do
    set :views, Proc.new { File.join(root, "../views/") }
    enable :sessions unless test?
    set :session_secret, "secret"
  end
end

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

When the setting value is a Proc, evaluation is performed every time the setting is read so that other settings may be used to calculate the value

设置 root 值后,您无需设置视图的完整路径。