带有用于生成内容的参数的 erb partials
erb partials with arguments for generating content
我一直在研究 sass,在这样做的过程中,我遇到了 .erb 文件以及如何将它们与部分文件一起使用以生成完整的 html 文档。我想知道是否有可能,如果可以,如何创建一个部分 .erb 文件,然后我可以在主 html 中呈现该文件,但使用参数作为内容传递。我猜想 sass 中的 mixin/function 如何生成 css?
我希望能够通过命令创建一个包含三列的部分,并在其中指定数量的包含列表的 div。
div.section
div.column
ul
li
li
div.column
ul
li
li
li
任何你能提供的帮助,即使只是一个显示所需语法的简单示例,也会对我的工作非常有帮助。
您可以对 div 部分使用 content_tag
帮助器,对 ul 列表使用帮助器:
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>
我一直在研究 sass,在这样做的过程中,我遇到了 .erb 文件以及如何将它们与部分文件一起使用以生成完整的 html 文档。我想知道是否有可能,如果可以,如何创建一个部分 .erb 文件,然后我可以在主 html 中呈现该文件,但使用参数作为内容传递。我猜想 sass 中的 mixin/function 如何生成 css?
我希望能够通过命令创建一个包含三列的部分,并在其中指定数量的包含列表的 div。
div.section
div.column
ul
li
li
div.column
ul
li
li
li
任何你能提供的帮助,即使只是一个显示所需语法的简单示例,也会对我的工作非常有帮助。
您可以对 div 部分使用 content_tag
帮助器,对 ul 列表使用帮助器:
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>