1

我不确定为什么在文档或在线任何地方都找不到这个,但如果我的控制器是:

# HomeController
class HomeController < ApplicationController
   def index
      @var = "A Sample Variable"
   end
end

..如果我的 HAML 视图使用 haml 布局并且看起来像这样:

/ index.html.haml
%p "This is a paragraph"
%p
   = @var

...为什么实例变量 @var 从未显示?该段落在那里,但@var 始终为空。我知道这是因为调用 @var.split('') 会引发未定义的方法错误。我使用的 HAML 版本是 4.0.3。有任何想法吗 ?

4

2 回答 2

2

因为你的index动作会渲染index.html.haml,不会home.html.haml。你在那里渲染错误的视图。

于 2013-05-30T21:38:42.557 回答
1

将视图文件名更改index.html.haml为您在其下定义实例变量的操作。或者,您可以向控制器添加 home 操作并将 var 实例变量存储在那里,因此 home 模板可以访问它

于 2013-05-30T21:38:46.963 回答