2009-08-26 16 views
5

Hola, soy nuevo en Rails y Ruby en general. Me preguntaba si es posible usar un archivo incrustado de ruby ​​css (css.erb), similar al uso de archivos html.erb para las vistas.Posible usar stylesheet.css.erb en Rails?

Por ejemplo, estoy usando

<%= stylesheet_link_tag "main" %> 

para enlazar a mi archivo main.css en público/hojas de estilo, pero cuando cambio la extensión del archivo de main.css a main.css.erb, se ya no representa el css ..

¿Es esto posible, o hay una forma mejor?

Respuesta

3

No lo creo. ¿Cuál es su intención? ¿Usar variables y hacer que se evalúen en tiempo de ejecución, o tiempo de "compilación" (es decir, como tiempo de implementación?). Además, ¿cuál sería el enlace de ERB? ¿Se vincularía al controlador, al igual que las vistas y los ayudantes, de modo que la instancia de ERB tendría acceso a las variables de instancia establecidas en el controlador? Solo planteo esta pregunta como más un ejercicio teórico.

Si desea utilizar variables en su CSS que puede utilizar Haml's SASS. No tienes acceso al alcance del controlador pero obtienes variables básicas y bucles. Además de otras cosas interesantes como mixins.

4

Puede también generar un controlador de "hojas de estilo"

./script/generate controller stylesheets main admin maintenance 

se obtiene algo como esto:

 exists app/controllers/ 
     exists app/helpers/ 
     create app/views/stylesheets 
     exists test/functional/ 
     exists test/unit/helpers/ 
     create app/controllers/stylesheets_controller.rb 
     create test/functional/stylesheets_controller_test.rb 
     create app/helpers/stylesheets_helper.rb 
     create test/unit/helpers/stylesheets_helper_test.rb 
     create app/views/stylesheets/main.html.erb 
     create app/views/stylesheets/admin.html.erb 
     create app/views/stylesheets/maintenance.html.erb 

Y más tarde puede utilizar las app/views/hojas de estilo/archivos que presenta dinámicamente CSS archivos.

El mismo método funciona para archivos javascript (controlador de javascripts)

+1

¿Hay alguna manera de server las hojas de estilo a través de un controlador y aún aprovechar el caché de la hoja de estilos de los rieles? – Pablo

22

Por el momento esta pregunta fue respondida efectivamente se ha producido ninguna manera de utilizar .css.erb archivos en los carriles correctamente.

Pero la nueva canalización de activos de los rieles 3.1 le permite usar ayudantes de activos dentro de su archivo css. Los analizadores css no binded un alcance del controlador/acción, pero el analizador de rubí ahora es capaz de resolver algunos problemas como la ruta de la imagen hace referencia a

.class { background-image: url(<%= asset_path 'image.png' %>) } 

o incrustar una imagen directamente en el CSS

#logo { background: url(<%= asset_data_uri 'logo.png' %>) } 

fuente : http://guides.rubyonrails.org/asset_pipeline.html

Cuestiones relacionadas