Sinatra 的本地变量到底是什么,在模板中使用它们与在实例变量中使用它们有什么区别?这就是我所说的当地人的意思:
erb :template, :locals => {:variable => 'value'}
编辑:
在实现方面,实例变量和局部变量之间有什么区别,使用其中一个有什么好处?
来自 Sinatra 的介绍:
模板在与路由处理程序相同的上下文中进行评估。路由处理程序中设置的实例变量可以通过模板直接访问:
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.name'
end
或者,指定局部变量的显式哈希:
get '/:id' do
foo = Foo.find(params[:id])
haml '%h1= bar.name', :locals => { :bar => foo }
end
这通常在将模板呈现为其他模板中的部分时使用。
对于某些模板(在本例中为 Radius):
由于您不能直接从 Radius 模板调用 Ruby 方法,因此您几乎总是希望将本地参数传递给它。