【发布时间】:2013-02-16 13:08:47
【问题描述】:
我有一个 Web 项目,它将呈现基于各种 .erb 文件的 HTML 文件。 我不确定执行此操作的最佳方法,因为每个 .erb 文件都需要获取特定信息,例如 cookie 内容。
目前我使用的是这个概念:
-
我有一个包含所有 .erb 文件的目录,这些文件使用以下方式呈现:
ERB.new(模板).result
-
渲染的 HTML 将返回到主 .erb 模板,该模板将再次由 sinatra 渲染,使用:
erb :main
结果非常好,但我没有机会从基于会话的 cookie 中包含内容,因为 .erb 无法访问它们
我很确定,sinatra 框架提供了一种更好的方法来做到这一点。一个好的方法是......
require 'sinatra'
enable :sessions
get "/" do
content1 = erb :template1, :locals => { :cookie => session[:cookie] }
content2 = erb :template2, :locals => { :cookie => session[:cookie] }
erb :mainTemplate, :locals => { :content => [content1, content2] }
end
...但是,不幸的是,它并没有那么容易:(
有人有更好的主意吗?
【问题讨论】:
标签: ruby session sinatra session-cookies erb