0
我的代碼有點像這樣:如何做兩次在不同的分支機構HAML
- say_hi = proc do |to_who|
.himessage
Hi
= to_who
.foo
.bar
= say_hi.call "bob"
= say_hi.call "joe"
我想將輸出:
<div class='foo'>
<div class='bar'>
<div class='himessage'>
Hi
bob
</div>
</div>
<div class='himessage'>
Hi
joe
</div>
</div>
相反,我得到:
<div class='himessage'>
Hi
bob
</div>
<div class='himessage'>
Hi
joe
</div>
<div class='foo'>
<div class='bar'>
2
</div>
1
</div>
似乎文本被插回到proc被定義的地方,而不是它被調用的地方。我沒有足夠的理解哈姆的內部知道爲什麼會發生這種情況,我關心的是:如何在保持代碼乾燥的情況下獲得所需的輸出?
注:在我的實際項目equivelent到say_hi
PROC要長得多,越來越複雜,因此簡單地重複了兩遍會非常難看。以上只是最簡單的情況,如果沒有明顯的解決方案,會導致此問題。
我剛剛得到開始侵入中的冒險HAML的代碼,將已經導致這個確切的方法是由我寫的。你及時回答我不要重新發明輪子,謝謝! – Shelvacu