Rails2出来了这么久,WEB开发敏捷之道--应用RAILS进行敏捷WEB开发第二版前半部的代码对于Rails2已经不适用。我也是RoR初学,就来实践实践。
从Depot建立开始 Let's code!
同样,建立Depot工程
rails depot
首先,打开\config\database.yml文件
可以到如下代码
# SQLite version 3.x # gem install sqlite3-ruby (not necessary on OS X Leopard) development: adapter: sqlite3 database: db/development.sqlite3 timeout: 5000
在rails 2.02中,默认使用sqlite3作为默认数据库,把它配置成你喜欢的数据库
这里用MySQL作为例子,即和之前一样。也可以通过
rails todo -d mysql
来生成对应MySQL的database.yml
development: adapter: mysql encoding: utf8 database: Depot_development username: root password: host: localhost
值得一提的是,在Leopard操作系统下,生成的database.yml中
host: localhost
被替换成
socket: /opt/local/var/run/mysql5/mysqld.sock
其中socket后面的内容可能不一样,这取决于你的操作系统。
如果需要把这个socket改成host的形式,需要安装MySQL的驱动
sudo gem install mysql -- --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
详细可以看http://www.iteye.com/topic/153842
在Rails1.2中,需要手动建立好数据库Depot_development
现在只需要执行
rake db:create
来生成相应的数据库。该语句默认生成的是development数据库,如果需要手动生成test和production数据库,需要指定RAILS_ENV。如
rake db:create RAILS_ENV=production
同样的道理,在部署production模式的时候,也可以通过制定RAILS_ENV来实现
也可以一次性把production数据库和test数据库一起建好,通过执行
rake db:create:all
接下来,就是scaffold出场了,原来的scaffold已经不再适用,需要RESTFul方式的调用。
以下是原来的代码:
ruby script/generate model product
需要在相应的位置添加如下代码
t.column :title, :string t.column :description, :text t.column :image_url, :string
再生成controller才能插入scaffold
现在,新的scaffold需要这样来调用
ruby script/generate scaffold admin title:string description:text image_url:string
这里的
title:string description:text image_url:string
为原来的model里头的代码
执行
ruby script/server
访问http://127.0.0.1:3000/admins
是不是看到了久违的scaffold呢?
我们也可以在config/routes.rb中添加如下代码,设置访问http://127.0.0.1:3000的默认controller
map.root :controller => 'admins' map.resources :admins
原文引:http://www.iteye.com/topic/154421