使用haml partial循环显示

Using haml partial to loop through and display

使用 Haml 和 Sinatra,给定一个数组,使用部分显示每个元素的最佳方法是什么?

例如,如果我定义一个助手:

#controller.rb
helpers do
  def showAllLines()
    @multipleLines.each { |l|
      @partialvar = l
      haml :partialview, :layout => false }
  end
end

...这基本上是一遍又一遍地调用局部视图,这不是我想要的。我真的宁愿将每个部分结果附加到另一个视图,该视图使用 showAllLines() 助手:

-# index.haml
=showAllLines

如何使用助手和局部视图让 @multipleLines 的每个元素显示在 index.haml 中?

我会把循环放在 haml 中。这就是为什么我喜欢 haml 而不是 erb。在视图中放一些编程看起来不像废话。

-# index.haml
- @multipleLines.each do |oneLine|
  .oneLine
    = oneLine.someData
    = oneLine.someOtherData

此外,我更愿意将 multipleLines 作为局部变量传递给视图,而不是使用实例变量。它使您的代码更加可靠。如果你仍然想在自己的部分中有一行,你可以在 index.haml.

的循环内部调用 render :partial 一些东西