A czy ty używasz generatorów w Railsach?
Dobrzy kelnerzy potrafią zapamiętać nasze ulubione zamówienia i witają nas słowami „Podać to co zwykle?”. Kto tego nie lubi?
Railsy też są takim dobrym kelnerem i oferują mechanizm generatorów. Powiedziałem dobrym? Przecież zawsze tworzą mi testy w test/unit (a chciałbym w rspecu), widoki są w erb zamiast w hamlu, do tego te nieszczęsne helpery. To zdecydowanie nie jest tak jak lubię.
Wpisywanie za każdym razem kombinacji w stylu:
rails generate controller products --helper -t rspec -e haml
nie jest rozwiązaniem. To ja już wolę sam tworzyć te pliki zamiast zapamiętwać ich składnię i opcję. Nie można Railsom powiedzieć jak najbardziej lubimy podane nasze danie? Ależ można.
Konfiguracja generatorów
Aby podać domyślne ustawienia w Rails 3 należy dodać do pliku config/application.rb sekcję dotyczącą generatorów. Może ona zawierać poniższe opcje:
config.generators do |g| g.orm :data_mapper g.template_engine :haml g.test_framework :rspec, :fixture => true g.fixture_replacement :factory_girl g.helper false g.stylesheets false end
Potrzebujemy jeszcze odpowiednich generatorów (zakładam, że odpowienie gemy są już zainstalowane), dodajmy więc do Gemfile odpowiedni wpis:
gem "rails3-generators", :group => :development
Powyższy gem nie zawiera generatorów dla hamla. PaulBarry przygotował odpowiednią paczkę, wystarczy ją sklonować:
git clone git://github.com/pjb3/rails3-generators.git lib/generators
Więcej informacji o generatorach znajdziecie poniżej:
Railscast 216
Zbiór najpopularniejszych generatorów
Generatory w kodzie Railsów
Kolejny generator dla Hamla
Zachęcam do poświęcenia ten raz kilku minut na konfigurację. Bardzo szybko się zwracają.





exine 12.02.2011
Możn ona
Raczej powinno być:
Może ona
BTW: Świetny post, teraz się zorientowałem, że mimo przejrzenia dużej ilości dokumentacji dopiero teraz zauważyłem, że te upierdliwe generatory da się jednak skonfigurować
hipertracker 24.02.2011
gem ‘haml-rails’ i masz domyślnie generowanego hamla, a erb z opcjami (np. rails g controller home index stworzy pliki hamla, ale rails g erb:controller home index pliki erb) zresztą jak używać hamla to lepiej iść na całego i użyć gem ‘compass’, ‘>= 0.10.6′
tjeden 24.02.2011
Dzięki. Sam compass z tego co rozumiem służy do tworzenia cssa, więc z hamlem chyba nie ma zbyt wiele wspólnego?
Dodaj komentarz
TY