2013-08-23 11 views
22

Jest to banalne pytanie, ale jestem ciekaw:nie należy tworzyć widoku folderów na szyny generować kontroler

Czy istnieje sposób ze zwykłymi generatorów config, aby wyłączyć tworzenie widoku folderów i szablonów działania po uruchomieniu rails generate controller?

Nie mogę znaleźć nigdzie opcji, a kod here nie pokazuje mi żadnych wskazówek.

Prawdopodobnie w pewnym momencie zbudujemy własny kontroler/generatory zasobów dla naszego API, ale byłem ciekawy, czy w międzyczasie istnieje sposób na wyłączenie tej irytacji.

+0

Po prostu nie dodawaj żadnych akcji podczas generowania kontrolera. – veritas1

+0

Not true - nadal tworzy pusty folder. Nie chcę niczego wchodzić w Widoki. –

+0

Dlaczego po prostu ręcznie utworzyć plik kontrolera i instalacje/pliki testowe, które będą potrzebne? Lub po prostu 'rm -r' wygenerowany katalog widoków? Czy wywołujesz 'szynę generującą kontroler' kilka razy lub programowo czy coś takiego? – cmpolis

Odpowiedz

34

Nie jest to dobrze udokumentowana funkcja, ale spróbuj dodać opcję --skip-template-engine (alias --no-template-engine) do polecenia.

rails generate controller foo bar --skip-template-engine 

demo na manekina aplikacji:

rails g controller my_controller index show --no-template-engine 
     create app/controllers/my_controller_controller.rb 
     route get "my_controller/show" 
     route get "my_controller/index" 
     invoke test_unit 
     create test/functional/my_controller_controller_test.rb 
     invoke helper 
     create app/helpers/my_controller_helper.rb 
     invoke test_unit 
     create  test/unit/helpers/my_controller_helper_test.rb 
     invoke assets 
     invoke coffee 
     create  app/assets/javascripts/my_controller.js.coffee 
     invoke scss 
     create  app/assets/stylesheets/my_controller.css.scss 
+0

+1 właśnie sprawdziłem to w fałszywej aplikacji, działa idealnie. – rmagnum2002

+0

Oznaczenie jako odpowiedź, chociaż nie jest to dokładnie to, co chciałem. Szukałem prostej opcji generatorów, aby rzucić w application.rb. Skończymy z pisaniem własnych generatorów, z innych powodów, ale przynajmniej wiem, że w opcjach, których mi brakuje, nie ma czegoś oczywistego. Dzięki! –

+4

Użyj również '--skip-assets' lub' --skip-helper', aby zrezygnować z nich również – babonk

4

Pomyślałem, że spróbuję podkreślając flagę --skip-template-engine, aby zobaczyć, czy to zadziałało w generatorze i to działało urok! Brak szablonów widoku wygenerowanych za pomocą komendy bin/rails g controller w aplikacji Rails 4.2.

Spróbuj:

config.generators do |g| 
    g.template_engine false 
end 

Trochę późno wiem, ale te rzeczy trzymać się w Google! ;)

20

Aby pominąć generowanie widoków za pomocą kontrolera, wyłącz mechanizm szablonów.

Raz:

rails g controller ControllerName action1 action2 --skip-template-engine 

Należy pamiętać, że każda opcja --skip posiada również aliasem --no opcję.

Domyślnie:

# config/application.rb 

config.generators do |g| 
    g.template_engine false 
end 

# OR 

config.generators.template_engine = false 

Jeśli masz aplikacji API (nie tylko przedni końcowy), można też chcą pominąć aktywów i pomocników z generowane z kontrolerów.

Po:

rails g controller api/users --no-helper --no-assets --no-template-engine 

domyślne:

# config/application.rb 

config.generators do |g| 
    g.assets false 
    g.helper false 
    g.template_engine false 
end 

# OR 

config.generators.assets = false 
config.generators.helper = false  
config.generators.template_engine = false 

wyłączanie trwałe pomija stylów i javascripts zostałby wygenerowany.Jeśli tylko chcesz pominąć jedną, użyj --no-stylesheets lub --no-javascripts lub w config/application.rb użytku:

config.generators.stylesheets = false 
config.generators.javascripts = false 

Jeśli domyślna konfiguracja pomija coś z generowane (np aktywa i pomocnicy), ale trzeba je w jednym przypadku , możesz je wygenerować w następujący sposób:

rails g controller foo --helper --assets --skip 

gdzie --skip pomija generowanie plików, które już istnieją.

+0

Dzięki za opracowanie. Dobrze wiedzieć, jak działają niektóre z tych rzeczy. –

+0

Używam szyn 5 i ostrzeże "Domyślną wartość oczekiwanego łańcucha dla" --template-engine "; get false (boolean) ', ale zamień' false' na 'nil' działa poprawnie - cicho wyłącz. – oklas

+0

config.api_only = true robi to samo zadanie? – Kaz

0

Jeśli tworzysz interfejs API bez interfejsu użytkownika, możesz śmiało korzystać z wersji rails new --api. Jednak nie polecam tej opcji, jeśli planujesz utworzyć interfejs użytkownika (na przykład aplikację z jedną stroną), ponieważ wyłącza on wiele elementów, w tym potok zasobów.

Powiązane problemy