【问题标题】:ActionView::MissingTemplate with HAML带有 HAML 的 ActionView::MissingTemplate
【发布时间】:2010-11-28 06:41:16
【问题描述】:

我正在全新安装的 Snow Leopard 上设置 Ruby on Rails。在与(和beating)MySQL 和 Sphinx 问题作斗争之后,我陷入了与 HAML 相关的愚蠢错误。

基本上,对于使用 HAML 的每个视图,我都会收到缺少模板的错误。我可以添加一个空白的 xxx.html.erb 文件,并且(空白)页面加载正常。但是 xxx.html.haml 会抛出错误,即使该文件肯定存在于相应的目录中。

这是来自开发服务器的错误:

ActionView::MissingTemplate (Missing template sections/index.erb in view path app/views):
  haml (2.2.4) rails/./lib/sass/plugin/rails.rb:19:in `process'

我正在使用 haml gem (2.2.4)、rails gem (2.3.4) 和 ruby​​ 1.8.7。我确实运行了 haml --rails 。从我的 RoR 应用程序根目录;初始化文件位于 vendor/plugins/haml 目录中。我已通过 IRB 确认“需要 'haml'”=> 为真。

任何帮助将不胜感激!

回应 Yaraher:

尝试卸载并重新安装,除了 rdocs(“找不到主页 README.rdoc”)之外没有引发任何错误。

在脚本/控制台中:

>> require 'haml'
=> []

更新:

在此项目中安装已知可与 HAML 一起使用的旧版 Rails 似乎已“解决”了该问题。我仍然很想听到这个问题的真正答案——我不想被困在 2.3.2。

sudo gem install -v 2.3.2 rails

更新 2:

这肯定是由 Rails 2.3.2 和 2.3.4 之间的差异引起的。安装两个 gem 后,我可以设置在我的 environment.rb 文件中使用的。 HAML 可以在 2.3.2 中正常工作,并按照 2.3.4 的说明进行中断。

【问题讨论】:

  • 你试过重新安装吗?您是否尝试过通过脚本/控制台要求它?
  • 我无法重现这个...我尝试使用单个控制器和单个 Haml 视图创建一个裸 Rails 2.3.4 应用程序,它运行良好。您介意创建一个失败的应用程序的压缩包并将其发送到 nex342@gmail.com 给我吗?这听起来像是我想消灭的 Haml 错误。

标签: ruby-on-rails haml


【解决方案1】:

尝试将您的模板重命名为

sections/_index.haml

sections/__index.haml

【讨论】:

  • 不起作用。这不只是将模板标记为部分吗?
【解决方案2】:

是时候回答这个问题的尴尬了:

Rails 2.3.2 和 2.3.4 之间存在差异,即不能将 xxx.haml.html 文件识别为应由 HAML(或 ERB)解析的文件;这在 2.3.2 中运行良好。 HAML 文件应始终命名为 xxx.html.hamlanwyay,所以这甚至不是错误。

我没有意识到这是问题所在,因为我在新安装的 Snow Leopard 中打开了“隐藏文件扩展名”选项(默认情况下打开)。所以当我尝试通过Finder将文件扩展名切换为html.haml进行测试时,它实际上将其更改为haml.html.haml或一些废话。

故事的寓意:我运行了以下脚本,现在 HAML 可以与 Rails 2.3.4 一起使用。

path = '/path_to_rails_app/views/'
dir = Dir.new(path)
dir.each do |d|
  if File.directory?(path+d)
    Dir.new(path+d).each do |f|
      if (f =~ /.*\.haml\.html$/) != nil
        File.rename(path+d+'/'+f, path+d+'/'+f.gsub('haml.html', 'html.haml'))
      end
    end
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    相关资源
    最近更新 更多