我已完成gem install sinatra
和gem install haml
我有这个.rb文件
require 'sinatra'
get '/abc2' do
"<b>aaaaaaaaaaaaa</b>"
end
现在说我想要那行HTML但是在HAML中。而不是外部
我知道我能做到
get '/abc' do
haml :index # /views/index.haml
end
而index.haml可能有一行haml %b aaaaaaa
但是有什么方法可以在我的ruby文件中包含%b aaaaaaa
并让它呈现。无需引用文件,例如无需参考/views/index.haml?
像CSS一样让你拥有CSS外部,或者它允许你在html文件中内部使用它。同样,Javascript允许你从外部导入javascript,或者它让你在html文件内部..好吧我&# 39; m询问在内部使用HAML到.rb文件。有可能吗?
我知道HAML旨在作为一种模板语言,用于将数据注入...但它也是更简洁地编写HTML的简写。
答案 0 :(得分:2)
对于小型应用,您可以在脚本末尾添加视图,这样就没有外部文件了。
get '/abc' do
haml :hello
end
__END__
@@ hello
%h1= "Hello there"
答案 1 :(得分:1)
您应该可以使用Haml::Engine#render
将Haml转换为HTML,如下所示:
get '/abc2' do
Haml::Engine.new(<<-Haml).render(binding)
%b aaaaaa
Haml
end
这使用了heredoc(<<-Haml
行和结束Haml
之间的所有内容。binding
是一个特殊变量,基本上是指当前范围。