首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionView::错用HAML模板

ActionView::错用HAML模板
EN

Stack Overflow用户
提问于 2009-09-14 21:06:21
回答 2查看 3.7K关注 0票数 2

我让Rails安装在雪豹的新安装上。在解决(和敲打) MySQL和狮身人面像问题之后,我陷入了一个与HAML相关的愚蠢错误中。

实际上,对于使用HAML的每个视图,我都会得到一个缺少的模板错误。我可以添加一个空白的xxx.html.erb文件和一个(空白的)页面加载良好。但是xxx.html.haml会抛出错误,即使该文件确实存在于适当的目录中。

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

代码语言:javascript
复制
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宝石(2.2.4)、rails宝石(2.3.4)和ruby 1.8.7。我确实跑过铁轨。在我的RoR应用程序根目录中;init文件位于供应商/plugins/haml目录中。我已经确认,“要求‘哈梅尔’”的=>真通过IRB。

任何帮助都将不胜感激!

对纱机的回应:

尝试了un-和重新安装,这不会引发任何错误,除了rdocs (“未能找到主页README.rdoc")。

在脚本/控制台中:

代码语言:javascript
复制
>> require 'haml'
=> []

更新:

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

代码语言:javascript
复制
sudo gem install -v 2.3.2 rails

更新2:

这肯定是由Rails 2.3.2和2.3.4之间的差异造成的。在安装了这两个gems之后,我可以在我的environment.rb文件中设置它。HAML在2.3.2中运行良好,在2.3.4中被描述为中断。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-15 20:41:33

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

Rails 2.3.2和2.3.4之间有一个区别,它们不将xxx.haml.html文件识别为应该由HAML (或ERB)解析的文件;这在2.3.2中工作得很好。HAML文件应该总是被命名为xxx.html.haml anwyay,所以这甚至不是一个bug。

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

这个故事的寓意是:我运行了下面的脚本,现在HAML使用Rails 2.3.4。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2009-09-15 10:23:50

尝试将模板重命名为

代码语言:javascript
复制
sections/_index.haml

代码语言:javascript
复制
sections/__index.haml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1423935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档