2012-03-22 52 views
2

使用Rails 3.2,您可以通过附加多个文件扩展名,正是如此使得在资产管道使用多个预处理程序文件:index.css.scss.erb我可以在Rails视图上使用多个预处理器吗?

我试图用视图(index.html.slim.erb)这样做的,它似乎不知道该怎么做(更确切地说,它根本没有找到视图)。

Rails是否真的不通过Tilt传递视图?还有另一种方法可以让视图运行一个预处理器,然后运行另一个预处理器吗?

(语境:我工作的东西是用于修改HTML返回前馈入,所以我希望它HAML /超薄/ ERB后运行)

回答

2

事实上,你不能。对于视图模板,Rails不使用倾斜。

这样做很复杂的一个原因是,在正常的操作中,ERB实际上是将代码“编译”为代码而不是文本,以获得性能。也就是说,erb模板编译一次生活的ruby代码,然后每次需要在不同的上下文中显示时,代码就会被执行。

我不知道建立在做你想做的事。你当然可以推出自己的。没有人说你来调用“渲染模板”来渲染。不要忘记,你可以随时

render :text => any_method_that_returns_a_string 

你可以通过倾斜你自己。与Rails通常所做的相比,您可能会看到一些性能下降。

+0

我想你提到的性能是为什么最好是预编译资产,而不是在请求时建立它们?无论如何,这听起来很合理。在我的情况下,我喜欢某些特定于邮件程序所使用模板的东西,因此性能并不是什么大不了的事情。这个事实(邮件程序)是否有影响,你认为? – 2012-03-22 06:03:38

+0

对什么有影响?我不知道。据我所知,目前还没有建立起来的办法。 – jrochkind 2012-03-22 18:52:57

+0

我在想,也许邮寄商处理不同的意见,但这似乎很愚蠢,不是我大声说出来。我想我已经找到了一种方法来使用ActionMailer :: Base.register_interceptor来做我想做的事情。 – 2012-03-23 16:11:29

相关问题