44 votes

haml par défaut

Existe-t-il un moyen de configurer rails pour qu'il utilise haml par défaut, c'est-à-dire que lorsqu'un échafaudage est généré, la fonction scaffold_name/index.html.haml est généré au lieu de scaffold_name/index.html.erb .

De la même façon qu'il est possible d'ajouter config.sass.preferred_syntax = :sass a config/application.rb et ont scaffold_name.sass généré par défaut.

J'ai essayé d'ajouter les éléments suivants à config/application.rb

config.generators do |g| 
  g.template_engine :haml
end

mais j'ai terminé par ce qui suit

$ rails generate scaffold foo name:string
  invoke  active_record
  create    db/migrate/20120208152550_create_foos.rb
  create    app/models/foo.rb
  invoke    test_unit
  create      test/unit/foo_test.rb
  create      test/fixtures/foos.yml
   route  resources :foos
  invoke  scaffold_controller
  create    app/controllers/foos_controller.rb
   error    haml [not found]
  invoke    test_unit
  create      test/functional/foos_controller_test.rb
  invoke    helper
  create      app/helpers/foos_helper.rb
  invoke      test_unit
  create        test/unit/helpers/foos_helper_test.rb
  invoke  assets
  invoke    coffee
  create      app/assets/javascripts/foos.js.coffee
  invoke    sass
  create      app/assets/stylesheets/foos.css.sass
  invoke  sass
  identical    app/assets/stylesheets/scaffolds.css.sass
$ rails destroy scaffold foo                                                                                                                        
  invoke  active_record
  remove    db/migrate/20120208152550_create_foos.rb
  remove    app/models/foo.rb
  invoke    test_unit
  remove      test/unit/foo_test.rb
  remove      test/fixtures/foos.yml
   route  resources :foos
  invoke  scaffold_controller
  remove    app/controllers/foos_controller.rb
   error    haml [not found]
  invoke    test_unit
  remove      test/functional/foos_controller_test.rb
  invoke    helper
  remove      app/helpers/foos_helper.rb
  invoke      test_unit
  remove        test/unit/helpers/foos_helper_test.rb
  invoke  assets
  invoke    coffee
  remove      app/assets/javascripts/foos.js.coffee
  invoke    sass
  remove      app/assets/stylesheets/foos.css.sass
  invoke  sass

J'ai créé une petite commande bundle pour remplacer tous les fichiers erb par haml comme suit este screencast mais je suis toujours intéressé de le rendre par défaut lorsque l'échafaudage est créé ! Comment faire pour que les fichiers haml (pas erb !) soient générés par défaut ?

0voto

Emil Kampp Points 84

El haml [not found] L'erreur est généralement due au fait que la liasse est incomplète. Avez-vous essayé d'exécuter bundle update et ensuite relancer le générateur ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X