Ruby on Rails 实践 读书笔记二
上一篇 /
下一篇 2008-10-12 15:27:15
/ 个人分类:Ruby
反复试了几个小时,终于在我的Sql Server 2000环境中完成实践里的CRUD功能。
1、下载sqlserver_adapter.rb
存于{Ruby安装目录}\lib\ruby\gems\1.8\gems\activerecord-2.1.1\lib\active_record\connection_adapters下。
2、下载dbi-0.2.2.tar.gz
,解压后将\lib\dbd\ADO.rb复制到{Ruby安装目录}\lib\ruby\site_ruby\1.8\DBD\ADO下。
3、执行F:\Ruby\railsdoc>rails booksample2(railsdoc是我的项目目录)创建工程文件夹,rails将生成该应用程序的完整目录结构。
4、修改booksample2\config\database.yml文件,如下:
adapter: sqlserver database: mybook host: localhost username: sa password: dol |
5、执行F:\Ruby\railsdoc\booksample2>ruby script/generate scaffold Book title:string description:text buydate:date,为Book类创建更多相关的数据库移植文件及model、controller、views文件。
6、先后执行rake db:create创建数据库和rake db:migrate创建表结构,但发生了以下错误:
F:\Ruby\railsdoc\booksample2>rake db:create (in F:/Ruby/railsdoc/booksample2)F:\Ruby\railsdoc\booksample2>rake db:migrate (in F:/Ruby/railsdoc/booksample2) rake aborted! Open OLE error code:80004005 in Microsoft OLE DB Provider for SQL Server 无法打开登录 'mybook' 中请求的数据库。登录失败。 HRESULT error code:0x80020009 发生意外。 (See full trace by running task with --trace) |
打开数据库发现数据库并未建立
(Why?...),于是在企业管理器中手动新建了一个名为mybook的数据库,再执行
rake db:migrate,如下(如不执行此命令而手动建表的话,Create时会显示主键字段无法插入NULL值的错误信息):
F:\Ruby\railsdoc\booksample2>rake db:migrate (in F:/Ruby/railsdoc/booksample2) == 20081012063300 CreateBooks: migrating ====================================== -- create_table(:books) -> 0.0150s == 20081012063300 CreateBooks: migrated (0.0310s) ============================= |
7、执行ruby script/server以启动WEBrick服务器,如下:
F:\Ruby\railsdoc\booksample2>ruby script/server => Booting WEBrick... => Rails 2.1.1 application started on http://0.0.0.0:3000 => Ctrl-C to shutdown server; call with --help for options [2008-10-12 14:40:25] INFO WEBrick 1.3.1 [2008-10-12 14:40:25] INFO ruby 1.8.6 (2007-09-24) [i386-mswin32] [2008-10-12 14:40:25] INFO WEBrick::HTTPServer#start: pid=3948 port=3000 |
8、在浏览器键入http://127.0.0.1:3000/books打开页面,但却发现输入中文是乱码,且Create后报错,如下:
DBI::DatabaseError: Execute OLE error code:80040E10 in Microsoft OLE DB Provider for SQL Server 至少一个参数没有被指定值。 |
9、在booksample2\config\environment.rb文件中添加如下代码:
require 'win32ole' WIN32OLE.codepage = WIN32OLE::CP_UTF8 |
10、Ruby on Rails实例中的CRUD功能就完成了,如下图所示:

F:\Ruby\railsdoc\booksample2>ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] F:\Ruby\railsdoc\booksample2>rails -v Rails 2.1.1 F:\Ruby\railsdoc\booksample2>gem -v 1.3.0 |
参考文章如何在rails中正确使用MS Sql Server 2000做为数据库服务器Rails Forum Tutorial for Beginners (Part 1 of 3)
相关阅读:
- 有关Ruby的英文书籍 (drive2me, 2007-8-03)
- Ruby开发专家级人物的社区网站 (drive2me, 2007-8-04)
- 累死我了,刚才在Fedora下装了个redmine. (skyover, 2007-8-18)
- 用Rails制作Google sitemap (skyover, 2007-8-26)
- 用method_missing来兼容旧数据库 (skyover, 2007-8-26)
- 在Ruby中使用SQLServer (skyover, 2007-8-27)
- ubuntu 7.04 server + lighttpd 1.4.13 + rails 配置 (skyover, 2007-9-16)
- thin简介 (maninred, 2008-1-10)
- Ruby on Rails 实践 读书笔记一 (struts, 2008-10-10)
- Rails安装问题 (struts, 2008-10-12)
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
rails
sqlserver