我正在尝试生成一个带有所有 RESTful 操作的控制器。我在 Wikibooks - Ruby on Rails 读到,我需要做的就是用控制器名称调用生成器,然后我就会得到它。因此,我运行了 script/generate rspec_controller Properties
,但得到了一个空控制器。
任何其他建议将不胜感激。
我不知道这样做的自动化方式,但如果你这样做:
script/generate controller your_model_name_in_plural new create update edit destroy index show
所有这些都将为您创建
Rails 4 更新
rails g scaffold_controller Property
在 Rails 3 中也有 rails generate scaffold_controller ...
。更多信息here。
rails g controller Foos create
将为 get '/create'
生成一个根本不是 RESTful 的路由。
编辑(由于一些评论):最初的问题是在 2010 年 - 因此答案不是 RAILS 4 ,而是 rails 2 !
尝试使用脚手架。
script/generate scaffold controller Properties
Section of Official docs on Ruby On Rails
如果您在 Rails 脚手架上进行谷歌搜索,我相信您可以找到更多信息。希望有帮助。
编辑:对于铁路 4
rails g scaffold_controller Property
rails g scaffold_controller Property
也适用于 rails 3.2。这将创建一个包含所有 7 个默认 RESTful 操作及其各自视图的 PropertiesController,而无需模型。
在 Rails 4/5 中,以下命令对我有用。
rails g scaffold_controller Property --skip-template-engine
它生成控制器动作但不生成视图。
导轨 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
脚本/生成 rspec_scaffold 属性
除了通过脚手架之外,没有办法(我知道?有记录吗?)存根控制器。但你可以这样做:
script/generate controller WhateverController new create edit update destroy show
一种解决方案是创建一个脚本,它接受一个参数,即控制器名称,并让脚本为您键入整个命令。
创建一个新文件,例如 railsgcontroller 使其可执行并将其保存在路径上运行它: $ railsgcontroller 文章
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
不定期副业成功案例分享
route get "mycontroller/create"
(创建应该是一个帖子)