gpt4 book ai didi

ruby - 如何在ruby中直接使用Slim

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:05 24 4
gpt4 key购买 nike

我想创建一个基本的 ruby​​ 脚本,将 Slim 模板呈现为 html(这最终将成为更大项目的一部分)。理想情况下,我想使用脚本中生成的 HTML。

我知道这可以使用 TILT(如 SLIM README 所示),其中说明如下:


Slim 使用 Tilt 来编译生成的代码。如果想直接使用Slim模板,可以使用Tilt接口(interface)。

 Tilt.new['template.slim'].render(scope)
Slim::Template.new('template.slim', optional_option_hash).render(scope)
Slim::Template.new(optional_option_hash) { source }.render(scope)

可选的选项散列可以包含在上一节中记录的选项。范围是执行模板代码的对象。


但是,我仍然无法成功运行它。因此,我想知道是否有人可以通过生成一个工作示例来帮助我。

编辑(最近进一步编辑):

我已经尝试了很多代码,但我不断收到以下错误:

 undefined local variable or method `source' for main:Object (NameError)

这是我正在运行的:

require 'slim'

# I'm not sure about the next two lines...
optional_option_hash = {}
scope = Object.new

Tilt.new('template.slim').render(scope)
Slim::Template.new('template.slim', optional_option_hash).render(scope)
Slim::Template.new(optional_option_hash) { source }.render(scope)

非常感谢您的帮助。

最佳答案

参见 Specifying a layout and a template in a standalone (not rails) ruby app, using slim or haml

这是我最终使用的:

require 'slim'

# Simple class to represent an environment
class Env
attr_accessor :name
end

scope = Env.new
scope.name = "test this layout"

layout =<<EOS
h1 Hello
.content
= yield
EOS

contents =<<EOS
= name
EOS

layout = Slim::Template.new { layout }
content = Slim::Template.new { contents }.render(scope)

puts layout.render{ content }

对于作用域,您可以放入模块/类甚至self

关于ruby - 如何在ruby中直接使用Slim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27020433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com