Tworzenie widoków Ruby on Rails (tylko) po utworzeniu kontrolerów i modeli

Otrzymałem projekt, który ma Kontrolery (tylko minimalny kod) i modele, ale brakuje widoków. Czy istnieje sposób na generowanie widoków tylko za pomocą rusztowania lub innego narzędzia?

Author: Peter Mortensen, 2011-11-14

6 answers

rails g scaffold User --migration=false --skip

--skip oznacza pominięcie plików, które już istnieją. (Przeciwieństwem jest --force.)

Jeśli nie chcesz pomocników, --helpers=false.

Przykładowe wyjście po usunięciu moich User odsłon:

      invoke  active_record
   identical    app/models/user.rb
      invoke    test_unit
   identical      test/unit/user_test.rb
        skip      test/fixtures/users.yml
       route  resources :users
      invoke  scaffold_controller
   identical    app/controllers/users_controller.rb
      invoke    erb
       exist      app/views/users
      create      app/views/users/index.html.erb
      create      app/views/users/edit.html.erb
      create      app/views/users/show.html.erb
      create      app/views/users/new.html.erb
      create      app/views/users/_form.html.erb
      invoke    test_unit
   identical      test/functional/users_controller_test.rb
      invoke    helper
   identical      app/helpers/users_helper.rb
      invoke      test_unit
   identical        test/unit/helpers/users_helper_test.rb
      invoke  assets
      invoke    coffee
   identical      app/assets/javascripts/users.js.coffee
      invoke    scss
   identical      app/assets/stylesheets/users.css.scss
      invoke  scss
   identical    app/assets/stylesheets/scaffolds.css.scss
 78
Author: Dave Newton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-23 01:38:06

To jest to, co generator rusztowań nazywa wewnętrznie:

rails g erb:scaffold User

erb jest używany silnik szablonów, więc można również użyć haml:scaffold.

Musisz wyraźnie określić pola, których chcesz użyć w rusztowaniu--rails Nie , a nie automatycznie wydedukowuje je z utworzonego modelu. Na przykład:

rails g erb:scaffold User firstname lastname reputation

Zobacz rails g --help dla opcji takich jak pomijanie, wymuszanie nadpisywania i suche przebiegi lub generate scaffold --help dla informacji specyficznych dla generowania rusztowań.

 13
Author: Rick Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 19:20:00

Po prostu napotykam ten sam problem. Zrobiłem to. Więcej szczegółów znajduje się poniżej:
- Najpierw zmieniam nazwę folderu views/your_model na views / your_model_bak. W celu przywrócenia, jeśli później się nie uda
- Następnie wykonaj polecenie

rails g scaffold YourModel [field[:type][:index]] --skip
  • nie zapomnij o opcji -- skip, nie utworzy ona istniejących plików (kontroler i model w tym przypadku i kilka innych plików)
  • Upewnij się, że lista [pole [: Typ] [: indeks]] jest aktualna

-- na koniec powinieneś zaktualizować swoje zezwolenie w your_model kontroler.

Mam nadzieję, że ci pomoże.
 2
Author: Ken Block,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-24 04:06:36

"inne narzędzie"...

A może być w stanie zrobić " script/generate view_for model_name"? :)

Jest do tego klejnot- View Mapper . Posiada wersję Ruby on Rails 2 i 3.

 2
Author: Michael Durrant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 08:09:26

Jedną małą wskazówką jest dodanie "--no-test-framework", jeśli używasz Rspec i nie chcesz, aby pliki testowe były generowane dla każdego widoku w spec / views

 1
Author: Dave Burke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-28 17:11:50

Aby wygenerować widoki po utworzeniu kontrolera i modeli, możesz użyć wiersza poleceń. Przełączysz się do folderu, w którym chcesz utworzyć nowy widok. Na przykład:

$ cd name_app/app/views/controller_name
$ touch name_file

Aby wrócić do jednego katalogu użyj:

$ cd ..
 -1
Author: Leonardo Barazza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 08:10:59