带有用于生成内容的参数的 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>