當它提供ruby表達式時,如if語句,我不知道如何正確縮進。Haml ruby表達式縮進
%ul
%li foo
- if true
%li bar
上面的代碼工作,但兩人%li
不對齊,這不是優雅對我來說,成爲他們在同一水平(我的意思都是UL%的兒童)
有一個更優雅的方式來做到這一點?
當它提供ruby表達式時,如if語句,我不知道如何正確縮進。Haml ruby表達式縮進
%ul
%li foo
- if true
%li bar
上面的代碼工作,但兩人%li
不對齊,這不是優雅對我來說,成爲他們在同一水平(我的意思都是UL%的兒童)
有一個更優雅的方式來做到這一點?
如果你關心格式化以提高可讀性,最好的方法是用erb:
過濾器逃避哈姆。
%ul
erb:
<li>foo</li>
<% if true %><li>bar</li><% end %>
不幸的是在這樣的情況下凹陷還挺使代碼的可讀性,但要注意裸露的觀點是不是意味着大量邏輯。儘可能多的,你應該使用你的控制器和幫助器從視圖中提取邏輯。
好了 - 所以這裏是我的代碼時會發生什麼情況是 '有點' 比這個更復雜:
list.haml
:
%ul
= render :partial => 'list_item', :locals => { value => 'foo', cond => true }
= render :partial => 'list_item', :locals => { value => 'bar', cond => false }
_list_item.haml
:
- if cond
%li= value
但在這樣一個微不足道的情況下,我可能不會這樣做。大多數情況下,最終會變得不那麼微不足道......用這種方法,您需要到另一個文件來查看實際發生的情況。 pro是乾的。
您應該考慮在[code review stackexchange](http://codereview.stackexchange.com/) – rudolph9
上發佈這些問題,這也讓我感到不安,但我認爲下面的erb建議更糟。我發現,當他們開始失控時,我會將偏小的東西放在偏旁。 – froderik
@froderik我同意你的意見,在我的建議和最初的代碼之間,我可能會選擇原始代碼,但我正在盡力回答這個問題。在給定視圖文件中格式化代碼的可用選項中,有更好的選擇嗎? – rudolph9