Как переносить многострочные аргументы Ruby в HAML?
Как я могу использовать несколько строк для одного оператора Ruby в HAML? Например, я хотел бы написать что-то вроде следующего:
- entries = [{
- :title => "The Fellowship of the Ring",
- :body => "We should walk instead of fly"
- }]
!!! 5
%html
%head
%title Blog
%body
#content
- entries.each do |entry|
.entry
%h3.title= entry[:title]
%p.body= entry[:body]
Но, конечно, первые четыре строки создают синтаксическую ошибку.
Ответы
Ответ 1
Обернуть аргументы запятыми
В соответствии с FAQ HAML:
[W], когда функция имеет множество аргументов, ее можно обернуть через несколько строк, если каждая строка заканчивается запятой.
Итак, должно быть справедливо следующее: HAML:
- entries = [{ :title => "The Fellowship of the Ring",
:body => "We should walk instead of fly" }]
Ответ 2
Ознакомьтесь с документами здесь.
Обратите внимание, что это преднамеренно неудобно, потому что вы не должны помещать много рубинов в свои шаблоны.
Ответ 3
%div= "First line " + |
"and second line" |
Будет отображать:
<div>First line and second line</div>
Вы можете использовать командный инструмент haml
, например, скопировать код, затем pbpaste | haml
на macOS, или с файлом cat file.haml | haml
.
Если вам даже не нужен тег:
First line |
and second line |
Будет производить:
First line and second line
Ответ 4
Вы можете использовать фильтр :ruby
.
:ruby
entries = [{
:title => "The Fellowship of the Ring",
:body => "We should walk instead of fly"
}]
!!! 5
%html
%head
%title Blog
%body
#content
- entries.each do |entry|
.entry
%h3.title= entry[:title]
%p.body= entry[:body]