使用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
的每个元素?
答案 0 :(得分:0)
我会把循环放在haml中。这就是为什么我喜欢haml与erb相比。在视图中放置一些编程并不像废话。
-# index.haml
- @multipleLines.each do |oneLine|
.oneLine
= oneLine.someData
= oneLine.someOtherData
此外,我更愿意将multipleLines
作为本地传递给视图,而不是拥有实例变量。它使您的代码更加稳固。如果您仍希望在自己的部分中包含一行,则可以在render :partial
中的循环内调用index.haml
。