在没有 flanking/preceding 'tags' 的情况下将 ruby 嵌入到 HAML 中

Embedding ruby into HAML without flanking/preceding 'tags'

我的 ruby 代码显示(并呈现为 'Hello World',这是数据库中的内容),当我键入:

%p= @task.notes

但是当我以这种方式尝试时 rails 中断(Tasks#index 中的 NoMethodError):

%p= Some text before code @task.notes

当我尝试这个时,它只是按字面显示我输入的内容(代码前的一些文本 = @tasks.notes):

%p Some text before code = @task.notes

当我尝试这个时,它也只是按字面显示我输入的内容(代码 %= @task.notes 之前的一些文本):

%p Some text before code %= @task.notes

当我再次尝试此操作时,它只会按字面显示我输入的内容(代码前的一些文本 =@task.notes):

%p Some text before code =@task.notes

但是当我尝试这样做时它起作用了(代码 Hello World 之前的一些文本),但似乎真的很奇怪没有办法将代码放在文本旁边:

%div
  Some text before code
  = @task.notes

但是当我尝试这个时我得到一个错误(Haml::SyntaxError in Tasks#index):

%div Some text before code
  = @task.notes

我不明白这里发生的事情的逻辑以及为什么我被迫合并所有这些显然毫无意义的东西 returns 只是为了在一些文本旁边生成我想要的代码。有人可以告诉我如何只在某些文本旁边包含一些 ruby 代码而不必合并所有这些回车 returns 吗?或者这就是 Haml 的方式?

您可以interpolate代码:

-# No =
%p Some text before code #{@task.notes}