【问题标题】:What is the difference between = and - in haml while writing ruby code?在编写 ruby​​ 代码时,haml 中的 = 和 - 有什么区别?
【发布时间】:2015-07-24 07:45:33
【问题描述】:

所以我是 HAML 的新手。

在学习 HAML 教程时,提到了表示 ruby​​ 代码的方式为=

例如:%strong= item.title

但是当我运行这段代码时:

= @list.documents.each do |doc|
  %tbody
    %tr
      %td= doc.display_name

除了显示的所有列表数据外,还显示了许多与显示的实际列表数据相关的垃圾数据。 这是我得到的:

val1 val2 val3 [#Document......@id : val1, @id:val2.....]

当我在用- 替换= 时尝试相同的代码时,不会收到不需要的数据。

- @list.documents.each do |doc|
      %tbody
        %tr
          %td= doc.display_name

输出:

val1 val2 val3

在用haml编写ruby代码时,有人可以解释-=之间的区别吗?

【问题讨论】:

  • = 显示,- 执行 ruby​​ 代码而不显示

标签: ruby-on-rails ruby haml


【解决方案1】:

它们都是指示接下来的内容需要作为 Ruby 代码处理的指标。但是- 不会输出结果以供查看,而= 会。

例如,考虑以下助手:

def hlp
  [1,2].each(&:succ) # using example relevant to your code sample
end

each 将返回调用它的枚举器。所以那个辅助方法的返回值将是[1,2]

您的 HAML 视图中的以下内容不会显示 [1,2]

- hlp

但下面会显示它:

= hlp

因此,在您分享的示例代码中,您将使用-,而不是=,因为您不想在完成each 后显示所有@list.documents

【讨论】:

    【解决方案2】:

    在haml中
    =用于编写ruby代码并将结果显示为输出
    其中- 用于在haml 中编写ruby 代码并且没有显示输出。
    您可以从此
    http://haml.info/tutorial.html

    了解更多关于haml的信息

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 2012-12-11
      • 2022-06-16
      相关资源
      最近更新 更多