【问题标题】:Integrating HAML with RSPEC将 HAML 与 RSPEC 集成
【发布时间】:2011-08-04 11:50:20
【问题描述】:

在我将项目转换为 HAML 之前,我运行了 11 个左右的 Rspec 测试。然后,当我运行测试时,我得到了以下错误:

ActionView::MissingTemplate: Missing template pages/home with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/Users/myhomedirectory/my_app/app/views"
/Users/myhomedirectory/.rvm/gems/ruby-1.9.2-p180@global/gems/actionpack-3.0.6/lib/action_view/paths.rb:15:in `find'
/Users/myhomedirectory/.rvm/gems/ruby-1.9.2-p180@global/gems/actionpack-3.0.6/lib/action_view/lookup_context.rb:81:in `find'

在发布原始问题 45 分钟后,我通过在 /config/application.rb 文件中添加以下行来解决自己的问题:

config.generators do |g|
  g.template_engine :haml
end

我是从semi-related blog entry 拼凑起来的,但我想知道怎么会有人知道这样做?据我所知,它没有记录在 HAML 中,所以这让我想知道我在安装它时是否做错了什么。我无法想象每个使用 HAML 的人都必须经历这一切......

【问题讨论】:

  • 在您对 application.rb 文件进行修复之前,您说您已将项目转换为 HAML。你是怎么做到的?
  • 通过将(大部分)所有 ERB 文件转换为 HAML 格式并安装 HAML 解释器 GEM。

标签: ruby-on-rails rspec haml erb actionpack


【解决方案1】:

我不知道如何为原始问题添加评论(正如 RobZolkos 和 Dave 上面所做的那样),因此使用此“答案”部分。

当我将空白 erb 重命名为 haml 并运行测试时,我遇到了同样的问题。但是,就我而言,问题是 Gemfile 中缺少“gem haml”。添加它,然后是“捆绑安装”为我解决了这个问题。只是想在这里发布,因为它可能对某人有用。我不必像 Dave 那样添加“g.template_engine :haml”的东西。

【讨论】:

  • 我确实相信 Gemfile 和 gem 依赖项最有可能是我最初问题的根本原因。几周前,我开始“净化”我的 gem 环境并从头开始重新安装所有东西(RVM、gems 等)。从那时起,我就不再需要我提到的代码了。
  • 完全相同的问题。在我的 gem 文件中添加了 haml,它解决了我失败的控制器测试。感谢您的帮助!
【解决方案2】:

我刚刚遇到了同样的问题,即 RSpec 找不到用 haml 编写的动作视图模板。然后我意识到测试环境没有考虑将haml作为渲染引擎:

Missing template pages/home with {:handlers=>[:erb, :rjs ...

所以,我通过将 haml-rails gem 添加到测试组来修复它。

因此,如果你有同样的问题,我建议:

group :development, :test do
  gem 'rspec-rails'
  ...
  gem 'haml-rails'
end

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多