我一直在玩sass,并且这样做我遇到.erb文件以及如何将它们与部分文件一起使用来生成完整的html文档。我想知道是否可能,如果是这样,创建一个部分.erb文件,然后我可以在主html中呈现,但使用参数作为内容传递。类似我猜想sass中的mixin / function如何生成css?
我希望能够传递一个命令来创建一个包含三列的部分,并且在其中包含指定数量的包含列表的div。
div.section
div.column
ul
li
li
div.column
ul
li
li
li
任何你可以提供帮助的东西,即使是一个显示所需语法的简单例子,对我来说也是非常有帮助的。
答案 0 :(得分:0)
您可以将content_tag
帮助程序用于部分div和helper for ul list:
Erb代码:
<%= content_tag(:div, class: 'section') do %>
<%= ul_list([1,2]) %>
<%= ul_list([1,2,3]) %>
<% end %>
app/helpers/application_helper.rb
:
def ul_list(arr)
content_tag :div, class: 'column' do
content_tag :ul do
concat(raw(arr.map { |l| content_tag(:li, l) }.join))
end
end
end
这些代码生成以下HTML:
<div class="section">
<div class="column">
<ul>
<li>1</li>
<li>2</li>
</ul>
</div>
<div class="column">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</div>