ruby-on-rails - 我可以在 Rails View 上使用多个预处理器吗?

标签 ruby-on-rails ruby

使用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/

相关文章:

ruby - Mechanize 和隐形搜索表单

ruby - 与 ruby 规范混淆

ruby - `rake test` 问题…rake 报告 "Could not find task ./test/whatever-my-first-test-file-is.rb"

javascript - Rails 4 Assets 管道和 IE8 Assets

ruby-on-rails - 如何在 ruby​​ on Rails 的康康 gem 的能力 block 中获得行动?

android - Ruby on Rails REST API 与可离线工作的 Android 客户端

ruby-on-rails - Rails 5.1 + Webpacker + React-router

c++ - 类似的函数peek(); (来自 C++)在 Ruby 中

ruby-on-rails - 如何最好地干燥will_paginate选项

android - 使用 FCM 从 Rails api 向 Android 推送通知未发送通知?