我正在尝试生成具有所有RESTful操作的控制器。我在Wikibooks上读过-Ruby on Rails,我所需要做的就是用控制器名称调用生成器,而我会得到的。所以,我跑了,script/generate rspec_controller Properties
但是控制器空了。
任何其他建议将不胜感激。
我正在尝试生成具有所有RESTful操作的控制器。我在Wikibooks上读过-Ruby on Rails,我所需要做的就是用控制器名称调用生成器,而我会得到的。所以,我跑了,script/generate rspec_controller Properties
但是控制器空了。
任何其他建议将不胜感激。
Answers:
我不知道自动执行此操作的方法,但是如果您这样做:
script/generate controller your_model_name_in_plural new create update edit destroy index show
所有这些都将为您创建
Rails 4的更新
rails g scaffold_controller Property
route get "mycontroller/create"
(create应该是发布)
在Rails 3中也有rails generate scaffold_controller ...
。更多信息在这里。
rails g controller Foos create
会生成get '/create'
根本不是RESTful的路由。
编辑(由于一些评论):最初的问题是在2010年-因此答案不是针对RAILS 4,而是针对Rails 2!
尝试使用脚手架。
script/generate scaffold controller Properties
我敢肯定,如果您在Google Rails脚手架上进行搜索,就会找到更多信息。希望能有所帮助。
编辑: 对于铁路4
rails g scaffold_controller Property
rails g scaffold_controller Property
可以在Rails 3.2中工作。这将创建一个具有全部7个默认RESTful动作及其各自视图的PropertiesController,而无需模型。
Rails 5.1
您已经创建无控制器的模型,也没有意见(如通:rails generate model category
)
升级到完整的RESTful资源
rails generate scaffold_controller category
它对脚手架控制器,其七个RESTful动作和相关视图进行了处理。(注意:您可以传递模型名称CamelCased或under_scored。)
varus@septimusSrv16DEV4:~/railsapps/dblirish$ rails generate scaffold_controller category
Running via Spring preloader in process 45681
create app/controllers/categories_controller.rb
invoke erb
create app/views/categories
create app/views/categories/index.html.erb
create app/views/categories/edit.html.erb
create app/views/categories/show.html.erb
create app/views/categories/new.html.erb
create app/views/categories/_form.html.erb
invoke test_unit
create test/controllers/categories_controller_test.rb
invoke helper
create app/helpers/categories_helper.rb
invoke test_unit
invoke jbuilder
create app/views/categories/index.json.jbuilder
create app/views/categories/show.json.jbuilder
create app/views/categories/_category.json.jbuilder
您正在寻找脚手架。
尝试:
script/generate scaffold Property
这将为您提供控制器,模型,迁移和相关测试。您可以使用选项跳过迁移--skip-migration
。如果您不想其他人,则必须自己删除它们。不必担心会覆盖现有文件,除非您使用,否则不会发生--force
。
klew在注释中指出,这还为您定义了方法主体,而不仅仅是名称。用作REST控制器的起点非常有帮助。
在Rails 4中 rails g controller apps new create update edit destroy show index
或者,rails generate controller apps new create update edit destroy show index
如果您想写出完整的学期:)。
rails g scaffold_controller apps
在Rails 4中使用
脚本/生成rspec_scaffold属性
除通过脚手架外,没有其他方法(据我所知?已记录?)。但是您可以这样做:
script/generate controller WhateverController new create edit update destroy show
一种解决方案是创建一个脚本,该脚本接受一个参数(控制器名称),然后让脚本为您键入整个命令。
die () {
echo "Please supply new rails controller name to generate."
echo >&2 "$@"
exit 1
}
[ "$#" -eq 1 ] || die "1 argument required, $# provided"
rails g controller "$1" new create update edit destroy show index