Rails 2.0: Scaffold

今天在看Agile.Web.Development.with.Rails.2nd.Edition
照着书写 Chapter 6 的代码

class AdminController < ApplicationController
scoffold Product;
end

运行报错。

undefined method `scoffold' for AdminController:Class

运行 gem list 查看当前版本

rails (2.0.2, 1.2.6)

查了网上的信息, 说是rails2.0把动态的scaffold去掉了。书写的内容比当前运行的2.0.2rails早。真郁闷


怎么办。有一种办法就是把版本降低。还有说装插件,但是我试了一下,发现没有反应,依然提示undefined method ,不知道是否是操作有问题。使用netbeans插件安装。

 

具体参考http://xudayu.blog.51cto.com/187984/67326

 

第三个办法在


http://leonardoborges.com/writings/2007/12/21/rails-20-scaffold/  找到的 

 

script\generate scaffold Contact name:string email:string

 

原文如下:

 写道
Following the Rails 2.0 hype, I’ve been playing around with it and decided to share a first impression: Scaffolding is gone!
But wait, before you knock your head against the wall, let me tell you something: I lied
Scaffolding is not really gone. It’s just changed a bit.
How can I tell? Well, as a good developer I thought: “I’ll just create a scaffold with the new version and see what’s different”
I fired up a terminal, created a news rails application and generated a new model:
$ script/generate model Contact name:string email:string - yes you can do this in rails 2.0, and these fields get into your model’s migration!
Now the I have a new model, it’s time for a controller to manage it:
$ script/generate controller Contacts
So your controller would look something like this huh?
class ContactsController < ApplicationController
scaffold :contact
end
Well, too bad! The method scaffold is gone from ActionController::Base! And I’m not lying this time!
Now that the dynamic scaffold is gone, we’re left with the static one.
Ok, let’s try it then:
$ script/generate scaffold contact
And it won’t work again! At the end of the output, you will get something like this:
Another migration is already named create_contacts: db/migrate/001_create_contacts.rb
It really means that if your model is meant to be used by a scaffold, you better generate it in the same line. It will fail, afaik, if the model previously existed. Destroy yout model and controller, and execute the following:
$ script/generate scaffold Contact name:string email:string
Done! Just run your migrations, startup your server and your new scaffold in rails 2.0 will be working gracefully!
It took me a while to discover this changes because I didn’t find it well documented. But maybe I was not looking in the right places.
 

生成

 

这里也有说明。http://www.ruby-lang.org.cn/forums/viewthread.php?tid=2786 第四楼

 

 写道
现在Rails2.0的scaffold是这样的语法:
script/generate scaffold ModelName [field:type  field:type]

去掉了1.2前使用的语法:
script/generate scaffold ModelName [ControllerName] [action, ...]

现在就不能像以前那样建了model和controller后再用scaffold了。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值