Подтвердить что ты не робот

Создавать представления Ruby on Rails (только) после того, как контроллеры и модели уже созданы

Я получил проект, в котором есть контроллеры (только минимальный код) и модели, но представления отсутствуют. Есть ли способ генерировать представления только с помощью эшафота или другого инструмента?

4b9b3361

Ответ 1

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

--skip означает пропустить файлы, которые уже существуют. (Противоположность --force.)

Если вы не хотите помощников, --helpers=false.

Образец вывода после удаления моих User представлений:

      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

Ответ 2

Это то, что внутренний генератор эхолота вызывает внутри:

rails g erb:scaffold User

erb - используемый механизм шаблонов, поэтому вы также можете использовать haml:scaffold.

Вы должны явно указать поля, которые хотите использовать для использования лесов: rails не автоматически выводит их из созданной модели. Например:

rails g erb:scaffold User firstname lastname reputation

См. rails g --help для таких параметров, как пропуски, форсирование и сухие пробеги или generate scaffold --help для информации, специфичной для создания лесов.

Ответ 3

"Еще один инструмент"...

Как насчет возможности "script/generate view_for model_name"?:)

Для этого есть жемчужина - View Mapper. Он имеет версии Ruby on Rails 2 и 3.

Ответ 4

Я просто сталкиваюсь с той же проблемой. Я сделал это. Подробнее ниже:
 - Сначала я переименовал папку views/your_model в views/your_model_bak. Чтобы вернуться, если позже выйдет ошибка  - Затем выполните команду

rails g scaffold YourModel [field[:type][:index]] --skip
  • Не забывайте, что опция -skip не будет создавать существующие файлы (контроллер и модель в этом случае и несколько других файлов)
  • Убедитесь, что список [поле [: type] [: index]] обновлен

- Наконец, вы должны обновить свое разрешение в контроллере your_model.

Надеюсь, это поможет вам.

Ответ 5

Один маленький совет - добавить "--no-test-framework" при использовании Rspec и не хотите, чтобы тестовые файлы, сгенерированные для каждого представления в spec/views

Ответ 6

Чтобы создавать представления после того, как контроллер и модели уже созданы, вы можете использовать командную строку. Вы переключаетесь в папку, в которой вы хотите создать новое представление. Например:

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

Чтобы вернуться к одному каталогу, используйте:

$ cd ..