ruby – 如何在命令行上将实例变量传递给HAML模板?
发布时间:2020-12-16 19:22:33 所属栏目:百科 来源:网络整理
导读:背景 我正在尝试测试Rails之外的一些HAML模板的格式.我们的想法是在命令行或通过包含的Ruby文件传递一些实例变量,将模板呈现为标准输出.我尝试了几种不同的方法但没有成功,如下所述. 需要Ruby文件 例如,给出以下两个文件: HAML模板:“test.haml” !!!%h1 T
背景
我正在尝试测试Rails之外的一些HAML模板的格式.我们的想法是在命令行或通过包含的Ruby文件传递一些实例变量,将模板呈现为标准输出.我尝试了几种不同的方法但没有成功,如下所述. 需要Ruby文件 例如,给出以下两个文件: > HAML模板:“test.haml” !!! %h1 Testing HAML CLI %p= @bar %p= @baz > Ruby文件:“test.rb” @foo = 'abc' @bar = '123' 我希望像haml -r ./test test.haml这样的调用可以在标准输出上返回插值的HTML文件,但事实并非如此.相反,我只得到HTML: <!DOCTYPE html> <h1>Testing HAML CLI</h1> <p></p> <p></p> 程序化尝试 由于这不起作用,我也尝试以编程方式执行此操作.例如: #!/usr/bin/env ruby require 'haml' @foo = 'abc' @bar = '123' engine = Haml::Engine.new(File.read 'test.haml') puts engine.render 具有完全相同的结果,例如只是没有变量插值的HTML. 重述问题 显然,需要其他东西来让HAML使用其关联变量呈现模板.我宁愿通过传递参数或包含文件从命令行执行此操作.我应该如何从命令行调用HAML来实现它? 如果由于某种原因这是不可能的,我应该如何以编程方式调用HAML来执行插值而不依赖于Rails? 解决方法
这两个示例都不起作用的原因是您尝试从其他类访问实例变量.最简单的解决方案是定义和使用方法,而不是尝试访问另一个类实例变量,就像它们是您自己的一样.
I.E.在test.rb中 def foo 'abc' end test.haml !!! %h1 Testing HAML CLI %p= foo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |