在控制器和模型已经创build之后,创buildRuby on Rails视图(仅)

我已经获得了一个项目,只有控制器(仅限最小代码)和模型,但是视图不见了。 有没有办法只使用脚手架或其他工具来生成视图?

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 

这是脚手架发电机内部调用的内容:

 rails g erb:scaffold User 

erb是使用的模板引擎,所以你也可以使用haml:scaffold

您必须明确指定您希望脚手架使用的字段 – rails不会自动从创build的模型中推导出它们。 例如:

 rails g erb:scaffold User firstname lastname reputation 

请参阅rails g --help以获取跳过,强制覆盖,干运行或generate scaffold --help帮助获取特定于生成脚手架的信息。

我只是遇到了同样的问题。 我做的。 更多细节如下:
– 首先,我将views / your_model文件夹重命名为views / your_model_bak。 为了恢复,如果以后失败
– 然后,执行命令

 rails g scaffold YourModel [field[:type][:index]] --skip 
  • 不要忘记–skip选项,它不会创build存在的文件(在这种情况下控制器和模型和其他几个文件)
  • 确保列表[field [:type] [:index]]是最新的

– 最后,你应该在your_model控制器中更新你的许可证。

希望它可以帮助你。

“另一个工具”…

如何能够做“ script/generate view_for model_name ”? 🙂

有一个gem – 查看映射 。 它有Ruby on Rails 2和3版本。

一个小技巧是添加“ --no-test-framework ”,如果使用Rspec,并且不想为spec / views中的每个视图生成testing文件

要在控制器和模型已经创build之后生成视图,可以使用命令行。 您切换到您要在其中创build新视图的文件夹。 例如:

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

要回到一个目录使用:

 $ cd ..