Rails2之Depot

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

你可能感兴趣的:(mysql,socket,敏捷开发,Ruby,Rails)