如何在haml中编写变量

时间:2014-04-07 01:43:59

标签: ruby-on-rails haml

我正在尝试在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写一行。

3 个答案:

答案 0 :(得分:3)

如果你不喜欢haml的工作方式,你为什么要使用它? haml是如何运作的。如果你想要不同的东西,你需要不同的东西,有更多的模板语言。

你抱怨线的数量,但想想字符的数量和可读性,可维护性。对你的代码来说,amout of line是不太重要的东西之一,或者当你使用erb或plain html时,你是否将所有的html代码写在一行中?

你可以通过以下方式保存几行:

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

但这真的很重要吗?那么,现在你有2行而不是1行,它是&#34; smart&#34;足够?我不认为你可以使用haml在一行中拥有它。

答案 1 :(得分:0)

  

但是,我必须以haml编写4行。

是的,但是你已经保存了很多字符,如果没有正确嵌套,现在会出现编译时错误。不要专注于使用的线条,而是清晰度。

认为你可以这样做:

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

答案 2 :(得分:0)

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

如果您使用<p>进行样式设置,最好在margin css

中添加.hello属性

你错过了haml的重点 - 它比erb

更简洁