我可以在Rails视图上使用多个预处理器吗?

时间:2012-03-22 03:50:12

标签: ruby-on-rails ruby

使用Rails 3.2,您可以通过附加多个文件扩展名使资产管道中的文件使用多个预处理器,因此:index.css.scss.erb

我尝试使用视图(index.html.slim.erb)执行此操作,但它似乎不知道该怎么做(更确切地说,它根本找不到视图)。

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

(上下文:我正在研究那些打算在返回之前修改输入的HTML的东西,所以我希望它在haml / slim / erb之后运行。)

1 个答案:

答案 0 :(得分:2)

确实,你做不到。 Rails不使用倾斜视图模板。

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

我不知道你想做什么的内置方式。你当然可以推出自己的。没有人说你来调用“渲染'模板'”进行渲染。别忘了你总能

render :text => any_method_that_returns_a_string

你可以自己通过Tilt传递信息。与Rails通常做的相比,您可能会看到一些性能降级。