我想在独立(不是rails)的应用程序中做这样的事情:
layout.slim:
h1 Hello .content = yield
show.slim:
= object.name = object.description
我不知道如何指定布局和模板.这是可能与苗条(或哈姆尔)吗?谢谢.
解决方法
layout.slim文件如下所示:
h1 Hello .content == yield
contents.slim文件如下所示:
= name
这可以缩短,但是为了解释目的,我分离到单独的步骤.
require 'slim' # Simple class to represent an environment class Env attr_accessor :name end # Intialize it env = Env.new # Set the variable we reference in contents.slim env.name = "test this layout" # Read the layout file in as a string layout = File.open("layout.slim","rb").read # Read the contents file in as a string contents = File.open("contents.slim","rb").read # Create new template object with the layout l = Slim::Template.new { layout } # Render the contents passing in the environment: env # so that it can resolve: = name c = Slim::Template.new { contents }.render(env) # Render the layout passing it the rendered contents # as the block. This is what yield in layout.slim will get puts l.render{ c }
这将输出:
<h1>Hello</h1><div class="content">test this layout</div>