【问题标题】:Using HAML instead of ERB causes tests to fail使用 HAML 而不是 ERB 会导致测试失败
【发布时间】:2017-03-03 13:07:44
【问题描述】:

这似乎很基本,但我使用的是 Rails 5,并且我将所有视图都换成了 HAML 而不是 ERB。现在我的一项测试失败了:

ActionController::UnknownFormat: ProductsController#index is missing  a template for this request format and variant.

request.formats: ["text/html"]
request.variant: []
    test/controllers/products_controller_test.rb:9:in `block in <class:ProductsControllerTest>'

是否有任何地方可以更改默认设置,还是我必须解决其他问题?我的路线很好,我可以访问索引页面没有问题。

【问题讨论】:

  • 标题相关吗?

标签: ruby-on-rails ruby haml ruby-on-rails-5 erb


【解决方案1】:

您需要安装haml,将gem 'haml' 添加到Gemfile,然后在您的控制台中添加bundle install

【讨论】:

  • 现在我读到这是唯一失败的测试,你能告诉我们测试吗?
  • 我重新启动了我的网络服务器。在我的情况下 sudo service nginx restart 。它拿起了新安装的宝石
【解决方案2】:

您似乎在app/views/products 中缺少视图文件index.html.haml

【讨论】:

  • 不,我在正确的目录中有那个文件。当我将它改回 index.html.erb 时,测试通过了。所以这是我正在使用的扩展程序......不知道为什么......
  • 如果这是您使用 haml 扩展的唯一视图,请关注 MaicolBen 回答
【解决方案3】:

这意味着控制器中的#index 方法缺少模板。 Rails 有一个约定,它会在/views/ 目录中搜索这个文件,相关的html.erb 或haml 文件,遵循命名约定。

【讨论】:

    【解决方案4】:

    我看到了同样的问题,我们的解决方案是通过将 haml gem 添加到 Gemfile 中的 development 组中,确保与 haml 相关的 gem 不在任何组中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      相关资源
      最近更新 更多