使用haml partial循环并显示

时间:2017-03-02 04:14:14

标签: ruby sinatra haml

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

例如,如果我定义一个帮助器:

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

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

-# index.haml
=showAllLines

如何使用辅助工具和部分视图在@multipleLines中显示index.haml的每个元素?

1 个答案:

答案 0 :(得分:0)

我会把循环放在haml中。这就是为什么我喜欢haml与erb相比。在视图中放置一些编程并不像废话。

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

此外,我更愿意将multipleLines作为本地传递给视图,而不是拥有实例变量。它使您的代码更加稳固。如果您仍希望在自己的部分中包含一行,则可以在render :partial中的循环内调用index.haml