Ruby on Rails生成视图

Jas*_*ost 54 views scaffold ruby-on-rails-3

有没有办法使用rails generate命令单独生成视图?我也愿意安装一个gem来完成任务.基本上脚手架命令给了我太多,我宁愿手工编写我的控制器.但是,使用表格为记录编写索引视图效率不高.

Gaz*_*ler 86

如果使用控制器生成器,则会生成控制器操作和视图.

rails g controller controllername new create
Run Code Online (Sandbox Code Playgroud)

这将创建新的并创建具有相关视图的操作.

您仍然需要使用此手动设置路线.

  • 如果我只想向现有控制器添加动作并希望自动创建视图页面,该怎么办? (5认同)
  • @HussainAkhtarWahid据我所知,它没有发电机.手动完成是相当简单的.创建view.html.erb文件,向控制器添加新方法,然后更新路由. (4认同)

Var*_*mus 7

一种特殊情况是当您想要向现有控制器添加视图时。

在这种情况下,只需使用常规命令,但'n'每次提示时都要小心,以免覆盖现有文件。

例如,添加一个调用'invite'到名为的现有控制器的视图'projects'

smith@ubuntuSrv16DEV4:~/railsapps/project_manager$ rails -v
Rails 5.1.4
smith@ubuntuSrv16DEV4:~/railsapps/project_manager$ rails generate controller projects invite
Running via Spring preloader in process 46253
    conflict  app/controllers/projects_controller.rb
Overwrite /home/smith/railsapps/project_manager/app/controllers/projects_controller.rb? (enter "h" for help) [Ynaqdh] n
        skip  app/controllers/projects_controller.rb
       route  get 'projects/invite'
      invoke  erb
       exist    app/views/projects
      create    app/views/projects/invite.html.erb
      invoke  test_unit
    conflict    test/controllers/projects_controller_test.rb
  Overwrite /home/smith/railsapps/project_manager/test/controllers/projects_controller_test.rb? (enter "h" for help) [Ynaqdh] n
        skip    test/controllers/projects_controller_test.rb
      invoke  helper
   identical    app/helpers/projects_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
   identical      app/assets/javascripts/projects.coffee
      invoke    scss
    conflict      app/assets/stylesheets/projects.scss
    Overwrite /home/smith/railsapps/project_manager/app/assets/stylesheets/projects.scss? (enter "h" for help) [Ynaqdh] n
        skip      app/assets/stylesheets/projects.scss
smith@ubuntuSrv16DEV4:~/railsapps/project_manager$ 
Run Code Online (Sandbox Code Playgroud)