Rails3.1引擎:无法获取SLIM或HAML在测试/虚拟应用工作(Rails3.1 engine

2019-10-17 06:09发布

我正在开发一个Rails 3.1引擎,并集成测试它,我想,而不是使用纯醇” ERB SLIM。 于是,我就简单地添加s.add_development_dependency "slim".gemspec文件,但重命名我的时候index.html.erb文件index.html.slim ,Rails的抱怨:

缺少模板虚设/索引,应用程序/索引含{:区域设置=> [:EN]:格式=> [:HTML]:处理程序=> [:ERB,:助洗剂]}。 搜查:* “/用户/乔希/文档/工作/ Sientia / iq_menu /全/规格/空/应用/视图” * “/用户/乔希/文档/工作/ Sientia / iq_menu /全/应用/视图”

我试了一下还与slim-rails的宝石,并且还与haml-rails宝石,但重命名文件index.html.haml导致同样的错误。

我究竟做错了什么?

Answer 1:

对于Haml的,你必须把

gem 'haml-rails'

到你的Gemfile



Answer 2:

显然,这是一个老问题,但我今天遇到了同样的事情(这时候就轨道4),我想我可以澄清这个问题,在这里。

捆绑有两个角色 - 一个是取宝石并提供他们的代码,另一种是实际上是“规定”的代码到您的项目。

当您添加的依赖到你gemspec,它的第一个功能,而不是第二。

在生产中使用你的应用程序,你gemspec确定的依赖可有效地添加到应用程序的捆绑,所以应用程序的捆绑都将获取,需要你的宝石。

如果你只有在gemspec不是在你的Gemfile参考,并,然后有效地什么都不做要求,因此创业板不会被初始化,模板引擎不提供给您的应用程序。 它添加到Gemfile中使其得到初始化和注册。

我认为你需要同时,对于一些喜欢苗条/ HAML。 仅仅有Gemfile中引用意味着应用程序不会知道的依赖,只是具有gemspec参考意味着引擎不会在你的虚拟应用程序获取初始化。



Answer 3:

您可以使用标准的haml宝石,但在你的engine.rb你需要有:

require 'haml'



文章来源: Rails3.1 engine: can't get SLIM or HAML to work in test/dummy app