在Rails 3中使用HAML出现“模板丢失”错误

22

我尝试在Rails 3中使用HAML渲染一些文件,但没有成功。

我的测试文件的扩展名是.html.haml

在我的Gemfile文件中,我加入了gem 'haml'这行,并运行了bundle install命令。

当我运行我的应用程序时,我收到以下错误信息:

模板缺失

在视图路径 "/Users/piet/Sites/blog/app/views" 中找不到带有{:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb]}的文章索引模板

你有什么解决办法吗?


1
你重启了Rails进程吗? - Andrew Vit
我将 yourview.html.erb 重命名为 yourview.html.haml,结果出现了 Template is Missing 的错误。所以我重新启动了 Rails 服务器,现在它可以正常工作了。 - Bao
3个回答

69

对于Rails 3,您只需要添加:

gem "haml-rails"

到您的Gemfile中,然后执行"bundle install"

查看https://github.com/indirect/haml-rails了解更多信息。

如果您仍然看到错误,请尝试重新启动服务器。


16
这应该被标记为答案 - 重新启动服务器是我所需要的额外步骤。 - Milktrader
我也需要服务器重启。对这个答案点赞。 - Adam Fraser

2

如果您从Rails 2升级到Rails 3,请确保以下内容位于您的config/application.rb文件的顶部:

# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)

它应该在下面

# Put this in config/application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'

整天以来,我一直沉迷于一个兔子洞里,认为我有某种rvm/passenger/gemsets/unix权限问题。这是因为我在Capifying和部署到新服务器时添加了一个新环境('qa')。其实,我需要将“qa”添加到以下行:Bundler.require(*Rails.groups(:assets => %w(qa development test)))。感谢您指引我走向正确的方向。 - Chris
确认,完全就是我遇到的问题。 - Sam Saffron

1

HAML在Rails 3中可以正常工作.. 有两件事情需要注意:

  1. 确保你的路由文件中有 resources :posts
  2. 确保你有文件 app/views/posts/index.html.haml

你可以试一下这个方法吗?并确认已经尝试了Andrew关于重启Rails的建议。


我不知道为什么,但现在它正在运行;9 谢谢你的回答。 - Peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接