2014-04-07 18 views
1

我想在RoR上使用haml。如何在哈姆編寫變量

我在haml中遇到了一些問題。

我的示例代碼如下。

ERB:

<p> <div class="hello"> <%= @sample.val %> <%= @hogehoge.val %> </div> </p> 

HAML:

%p 
    .hello 
    = @sample.val 
    = @hogehoge.val 

我可以寫在ERB文件中的一行。

但是,我必須在haml中寫4行。

Haml是如此聰明美麗的syntacx結構,不是嗎?

但我認爲寫這麼多的行並不聰明。

在這種情況下,我如何在haml中的一行中寫入。

回答

0

但是,我必須在haml中編寫4行。

是的,但是如果你沒有得到你的嵌套權限,你已經保存了很多字符,並且現在有編譯時錯誤。不要專注於使用的線條,但要清晰。

認爲你可以這樣做:

%p %div.hello 
    = @sample.val + " " + @hogehoge.val 
3

如果你不喜歡的方式工作HAML,你爲什麼要使用它?這就是haml的工作原理。如果你想要不同的東西,你需要不同的東西,還有更多的模板語言。

你抱怨行數,但想到字符數量和可讀性,可維護性。行的行爲是你的代碼中不太重要的事情之一,或者當你使用erb或純html時,你將所有的html代碼寫在一行中?

你可以節省幾行儘管這樣做:

%p 
    .hello= "#{@sample.val} #{@hogehoge.val}" 

但是否真的那麼重要嗎?那麼,現在你有2條線而不是1條,它是否「足夠聰明」夠了?我不認爲你可以在一行中使用haml。

0
.hello 
    = @sample.val 
    = @hogehoge.val 

如果您使用<p>的造型,你最好把一個margin財產在你.hello CSS

你錯過的haml點 - 它比erb

更簡潔