究竟什么是Sinatra的本地人,在模板中使用它们与实例变量之间有什么区别?这是我对当地人的意思:
erb :template, :locals => {:variable => 'value'}
Run Code Online (Sandbox Code Playgroud)
编辑:
在实现方面,实例和局部变量之间有什么区别,使用一个和另一个有什么好处?
来自Sinatra的介绍:
模板在与路由处理程序相同的上下文中进行评估.路径处理程序中设置的实例变量可由模板直接访问:
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.name'
end
Run Code Online (Sandbox Code Playgroud)
或者,指定局部变量的显式哈希:
get '/:id' do
foo = Foo.find(params[:id])
haml '%h1= bar.name', :locals => { :bar => foo }
end
Run Code Online (Sandbox Code Playgroud)
这通常在将模板从其他模板中呈现为部分时使用.
对于某些模板(在这种情况下为Radius):
由于您无法直接从Radius模板调用Ruby方法,因此您几乎总是希望将locals传递给它.
| 归档时间: |
|
| 查看次数: |
4401 次 |
| 最近记录: |