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

原文引:http://www.iteye.com/topic/154421

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