2008-01-09
Rails2之Depot
Rails2出来了这么久,WEB开发敏捷之道--应用RAILS进行敏捷WEB开发第二版前半部的代码对于Rails2已经不适用。我也是RoR初学,就来实践实践。
从Depot建立开始 Let's code!
同样,建立Depot工程
首先,打开\config\database.yml文件
可以到如下代码
在rails 2.02中,默认使用sqlite3作为默认数据库,把它配置成你喜欢的数据库
这里用MySQL作为例子,即和之前一样。也可以通过
值得一提的是,在Leopard操作系统下,生成的database.yml中
其中socket后面的内容可能不一样,这取决于你的操作系统。
如果需要把这个socket改成host的形式,需要安装MySQL的驱动
详细可以看http://www.javaeye.com/topic/153842
在Rails1.2中,需要手动建立好数据库Depot_development
现在只需要执行
也可以一次性把production数据库和test数据库一起建好,通过执行
接下来,就是scaffold出场了,原来的scaffold已经不再适用,需要RESTFul方式的调用。
以下是原来的代码:
需要在相应的位置添加如下代码
再生成controller才能插入scaffold
现在,新的scaffold需要这样来调用
这里的
执行
是不是看到了久违的scaffold呢?
我们也可以在config/routes.rb中添加如下代码,设置访问http://127.0.0.1:3000的默认controller
从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.javaeye.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
评论
neodoxy
2008-06-16
用上了restful的scaffold最好把admin换成名字空间,下面做products,不然不能体现REST的语义URL与RPC架构的不同
antony_jiang
2008-06-16
要是可以用radrails 来展示就更好了...
zcwdlove
2008-02-27
虽然之前已经搞定了,但是还是对作者表示崇高的敬意.顶
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 3755 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Rails2之Depot
用上了restful的scaffold最好把admin换成名字空间,下面做pro ...
-- by neodoxy -
Rails2之Depot
要是可以用radrails 来展示就更好了...
-- by antony_jiang -
听说Rails 2.1有个Time Z ...
楼主用的竟然是Mac
-- by Dreamer -
听说Rails 2.1有个Time Z ...
在2.0版本中就已经有了;
-- by PBFox -
听说Rails 2.1有个Time Z ...
确实之前就有了,不过Rails 2.10是Built-in的 多了一些新特性, ...
-- by t0uch






评论排行榜