unreadable template rails not instalar found bootstrap ruby-on-rails ruby sass ruby-on-rails-3.1

ruby-on-rails - not - rails bootstrap template



¿Cómo hacer que Rails 3.1 use SASS(Over SCSS) como predeterminado? (6)

Tener dificultades para averiguar cómo hacer SASS, no SCSS, como el predeterminado para las hojas de estilo.

Intenté hacer un archivo sass_config.rb con esto:

Sass::Plugin.options[:syntax] = :sass Sass::Plugin.options[:style] = :compressed

También intenté agregar eso al archivo environment.rb. De cualquier forma obtengo este error:

.../config/environment.rb:7:in `<top (required)>'': uninitialized constant Sass::Plugin (NameError)


Agregué lo siguiente a config/environments/development.rb :

config.sass.preferred_syntax = :sass

Eso hizo el truco.


Como @krainboltgreene comentó, agregando la siguiente línea a config/application.rb

config.generators.stylesheet_engine = :sass

hace que sass sea ​​el formato predeterminado para los generadores de hojas de estilo. Sin embargo, dado que Rails 3.1.beta1 no lo admite, uno recibe los siguientes mensajes de error

$ rails g scaffold user name:string ... Could not find "scaffold.css.sass" in any of your source paths. Your current source paths are: .../gems/railties-3.1.0.beta1/lib/rails/generators/rails/scaffold/templates ... $ rails g controller users ... Could not find "stylesheet.css.sass" in any of your source paths. Your current source paths are: .../gems/railties-3.1.0.beta1/lib/rails/generators/rails/assets/templates

Como ve, uno no puede cambiar el formato predeterminado sin romper los generadores. En cambio, puede crear manualmente archivos * .css.sass adicionales, que funcionan bien con o sin los de scss.


Definitivamente prefiero sass a scss también: ¿has considerado usar la gema de la brújula para todas tus CSS y agregar preferred_syntax = :sass a config / compass.rb

Todavía no lo he probado en Rails 3.1 pero funciona en 3.0.7

EDITAR

Como paso de solución de problemas, ¿qué sucede cuando elimina solo la primera línea de código de sass_config.rb para que solo tenga la segunda? ¿Ambas líneas causan el error?


Encontré esta respuesta en otro lugar, no recuerdo exactamente, pero puse esto en config/initializers/sass.rb :

Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths| load_paths << "#{Rails.root}/app/assets/stylesheets" load_paths << "#{Gem.loaded_specs[''compass''].full_gem_path}/frameworks/compass/stylesheets" end

También prefiero la sintaxis SASS (a SCSS). Todo lo que tienes que hacer es nombrar los archivos mystylesheet.css.sass en mystylesheet.css.sass lugar y simplemente funciona. Incluso puede cambiar el nombre de su application.css a application.css.sass , cambie los comentarios en la parte superior a // lugar de /* */ y use las directivas require_* ; todo funciona, y luego puede usar SASS en su aplicación hoja de estilo global. No lo hará si usa la brújula en la app/stylesheets .

No requiere Sass::Plugin , está totalmente separado del nuevo motor de activos de Rails, que se basa en Sprockets. Ya sabe cómo compilar SASS para usted y gestiona la agrupación de activos de forma adecuada.

Me imagino que una nueva versión de Compass lo hará automáticamente para los proyectos de Rails 3.1+ que utilicen el inventario de activos.


Para los rieles 3.1.rc4, puede configurar la configuración:

config.sass.preferred_syntax = :sass

en el archivo application.rb


require ''sass/plugin'' y asegúrese de que esté en la parte inferior después de su Application.initialize! llamada.