Sinatra 在模板中访问变量
模板和路由执行器在同样的上下文求值,在路由执行器中赋值的实例变量可以直接被模板访问。路由就是控制器 + 动作,这里免去了 Rails 中控制器和视图的分层 (避免的控制器到视图中对象的复制):
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.name'
end
或者,显式地指定一个局部变量的哈希:
get '/:id' do
foo = Foo.find(params[:id])
haml '%h1= foo.name', :locals => { :foo => foo }
end
显示传递局部变量的典型的使用情况是在模板中渲染局部模板的方式来渲染。