使用Rails 3.2,您可以通过附加多个文件扩展名来使 Assets 管道中的文件使用多个预处理器,因此:index.css.scss.erb
我尝试使用 View (index.html.slim.erb
)执行此操作,但它似乎不知道该怎么做(更准确地说,它只是没有在全部)。
Rails真的不通过Tilt传递 View 吗?是否有另一种方法可以让 View 先运行一个预处理器,然后再运行另一个?
(上下文:我正在研究一些旨在修改返回之前输入的 HTML 的内容,因此我希望它在 haml/slim/erb 之后运行。)
最佳答案
确实,你不能。 Rails 不使用倾斜 View 模板。
这样做会很复杂的一个原因是,在正常操作中,ERB 实际上“编译”为 ruby 代码,而不是文本,以提高性能。即,erb 模板编译一次为实时 ruby 代码,然后每次需要在不同的上下文中显示时执行该代码。
我不知道内置的方法可以做你想做的事。你当然可以自己推出。没有人说你必须调用“render 'template'”来渲染。别忘了你永远可以
render :text => any_method_that_returns_a_string
你可以自己通过Tilt传递东西。与 Rails 通常的做法相比,您可能会看到一些性能下降。
关于ruby-on-rails - 我可以在 Rails View 上使用多个预处理器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816198/