Ruby on rails 关于scaffold问题
rails 2.0.0以上的版本 用scaffold 有没办法让生成的控制器自己取名字?
我的数据库表名为books,2个字段name, description,命令行如下:
比如ruby script/generate scaffold Book name:string description:text 这样
生成以后的Controller名为books_controller.rb 里面的类名为Books
生成的model名为book.rb
实际上我只设置了模型名,控制器名并未设置,自动把控制器名写成Books 但是我觉得这个名字不是很好分辨,我觉得比如BooksAction等,BooksControl都可以.
我看<<Ruby on rails 敏捷开发>>书上面有例子是这样写的
ruby script/generate scaffold (模型名)Book (控制器名)BookAction
报
exists app/models/
exists app/controllers/
exists app/helpers/
exists app/views/books
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists test/unit/helpers/
exists public/stylesheets/
wrong number of arguments (1 for 2)
错
我再用
ruby script/generate scaffold Book name:string description:text BookAction(控制器名)
exists app/models/
exists app/controllers/
exists app/helpers/
exists app/views/books
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists test/unit/helpers/
exists public/stylesheets/
rong number of arguments (1 for 2)
也报这个错
请问有没办法改控制器名.
[解决办法]
不会Ruby 的帮顶!
[解决办法]
up
[解决办法]
敏捷开发书上写的都是1.0的版本了,命令已经过时了。
建议你不要用scaffold ,这个也许对初学者学习有用,但真正到项目中时还是要自己一步步生成controller等,./script/generate controller CreditCard
[解决办法]
建议你看第三版,不过是英文的
第二版都是Rails 1.x的
现在都是2.0以后的版本了
[解决办法]
都是版本惹的祸~~~~~~
[解决办法]
那是2.0以前版本的用法,到2.0版本以后的用法就不是那样用了,当然会出错、、、
现在的命令中不能再添加控制器名称,控制器名称会自动生成
ruby script/generate scaffold ModelName [title:sqlType]
[解决办法]
现在有scaffold 其实很好用. ruby script/generate scaffold ModelName [title:sqlType]
就会自动生成modelname复数形式的controller 里面已经自动生成了index edit create new delete 等 action
还有好多的东西,你可以试一试。例如
ruby script/generate scaffold student name:string address:string tel:string
就可以自动生成所有的学生信息管理代码,包括数据库
只要 rake db:migrate
启动服务 ruby script/server
就可以打开 http://localhost:3000/students