您的位置:首页 > 数据库 > Oracle

rails的链接oracle数据库的几个问题。

2007-09-22 22:58 411 查看
最近学学rails,随便为我们的实时系统做一个测试用的模拟器。
以前没有接触过rails,在网上看了两天ruby的资料,买了一本《Agile Web Development with Rails》,翻了翻开始做 起来。

下载ruby,下载rails,一切顺利。
1.配置数据库,我们以前的系统用的是oracle9,于是我在http://rubyforge.org/projects/ruby-oci8下载了一个驱动程序。
C:/>ruby ruby-oci8-0[1].1.13-mswin.rb

Copy OCI8.rb to c:/ruby/lib/ruby/site_ruby/1.8/DBD/OCI8
Copy oci8.rb to c:/ruby/lib/ruby/site_ruby/1.8
Copy oci8lib.so to c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt
OK?
Enter Yes/No: Yes
Copying OCI8.rb to c:/ruby/lib/ruby/site_ruby/1.8/DBD/OCI8 ... done
Copying oci8.rb to c:/ruby/lib/ruby/site_ruby/1.8 ... done
Copying oci8lib.so to c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt ... done
OK
成功。

由于我的Oracle在公司服务器上,所以我配置oralce9带的tnsnames.ora
ORA920 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ×.×.×.×)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora920)
)
)

2.用rails创建我的模拟器工程,
rails sim
好了,在./ora/config/database.yml
development:
adapter: oci
database: ora920
username: test
password: test
host: ora920
encoding: utf8设置utf8是因为解决rails显示中文的问题。

3.接着,用rails脚手架,试着建立对某数据库表的访问。
./ruby script/generate scaffold svc_product

exists app/controllers/
exists app/helpers/
create app/views/svc_products
exists app/views/layouts/
exists test/functional/
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
skip app/models/svc_product.rb
identical test/unit/svc_product_test.rb
identical test/fixtures/svc_products.yml
"DESC svc_products" failed; does it exist?

失败了,是rails默认会寻找复数的表名,要去除这个约定,需要增加一个全局变量赋值(我在development.rb中加)
ActiveRecord::Base.pluralize_table_names = false

4.现在启动web server
ruby script/server

打开浏览器,试试访问svc_product表
哦,中文显示有问题,是乱码。选择浏览器编码为GB2312,渲染网页,中文已经正常显示了。现在我们已经可以通过网页增删改表的数据了。不错,不错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: