我有一些Ruby正确输出为.rb文件。但是,我想在HAML文件中包含等效代码,而我无法正确输出它。我曾尝试以各种方式重新格式化,但未能弄清楚,也没有找到我在另一个问题中寻找的确切内容。
我正在使用存储在数组数组中的元素生成重复的div块。我想在.row下分组3组.class对象。我必须制作这些的BUNCH,所以我想尽可能自动化。现在我可以在sublime文本中运行ruby代码,然后将格式化的HAML复制+粘贴到我的HAML页面中...但似乎我应该能够在线进行!
这是Ruby代码:
gfys = [
[ #ROW 1
{"Title"=>"MOVE", "ID"=>"#gfy0a", "Desc"=>"Use either analog stick or directional buttons."},
{"Title"=>"SHOOT", "ID"=>"#gfy0b", "Desc"=>"Press any button; pull any trigger."},
{"Title"=>"PUSH", "ID"=>"#gfy0c", "Desc"=>"Projectiles displace the ball on impact."}
],
[ #ROW 2
{"Title"=>"AIM", "ID"=>"#gfy1a", "Desc"=>"Projectiles are triangular. Balls are circular."},
{"Title"=>"LAUNCH", "ID"=>"#gfy1b", "Desc"=>"Shoot while moving for faster projectiles."},
{"Title"=>"SCORE", "ID"=>"#gfy1c", "Desc"=>"Push a ball into the opposing goal to earn a point."}
]
]
gfys.each do |group|
puts "// ROW #{gfys.index(group)}"
puts ".row"
group.each do |gfy|
puts "\t.class
.class2
%h2
#{gfy["Title"]}
#{gfy["ID"]}.class
%p
#{gfy["Desc"]}"
end
end
这正确输出到HAML代码:
// ROW 0
.row
.class
.class2
%h2
MOVE
#gfy0a.class
%p
Use either analog stick or directional buttons.
.class
.class2
%h2
SHOOT
#gfy0b.class
%p
Press any button; pull any trigger.
.class
.class2
%h2
PUSH
#gfy0c.class
%p
Projectiles displace the ball on impact.
// ROW 1
.row
.class
.class2
%h2
AIM
#gfy1a.class
%p
Projectiles are triangular. Balls are circular.
.class
.class2
%h2
LAUNCH
#gfy1b.class
%p
Shoot while moving for faster projectiles.
.class
.class2
%h2
SCORE
#gfy1c.class
%p
Push a ball into the opposing goal to earn a point.
现在,只需在HAML文件中的:ruby过滤器下运行代码对我来说不起作用。它似乎将整个数组打印到页面中,然后其他一切都变得愚蠢。取出END标签,并考虑HAML试图“简化”代码的尝试不起作用。在代码不适合我之前,在适当的位置放置 - 或=字符。
我知道数组中的格式化会使情况变得复杂,但是将数组折叠到一行也无济于事。
最后,我在使用Hammer.app将其上传到页面之前进行了预编译,如果这很重要的话。
我在疯狂吗?或者我错过了什么?我真的很感谢你的帮助!