【问题标题】:HAML on Rails 3 returning "Template is missing" errorRails 3 上的 HAML 返回“模板丢失”错误
【发布时间】:2011-04-17 06:17:50
【问题描述】:

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

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

在我的 Gemfile 中,我有 gem 'haml' 行并运行了 bundle install

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

模板丢失

缺少带有 {:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb 的模板帖子/索引]} 在视图路径“/Users/piet/Sites/blog/app/views”中`

知道如何解决这个问题吗?

【问题讨论】:

  • 您是否重新启动了您的 Rails 进程?
  • 我将yourview.html.erb 重命名为yourview.html.haml,它显示Template is Missing。所以我重新启动了 Rails 服务器,它现在可以工作了。

标签: ruby-on-rails haml


【解决方案1】:

对于 rails 3,您只需添加:

gem "haml-rails"

到您的 Gemfile,然后执行“捆绑安装”

https://github.com/indirect/haml-rails

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

【讨论】:

  • 这应该被标记为答案 - 重新启动服务器是我需要的额外步骤。
  • 我还需要重启服务器。对此答案 +1。
【解决方案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)))。谢谢你为我指明了正确的方向。
  • 已确认,与我遇到的问题完全相同
【解决方案3】:

HAML 在 Rails 3 中没有问题。两件事:

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

你可以试试吗?并确认 Andrew 关于重启 Rails 的评论也已尝试过。

【讨论】:

  • 我没有t know why, but now its 工作;9 感谢您的回答
猜你喜欢
  • 1970-01-01
  • 2011-02-17
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
相关资源
最近更新 更多