How to configure Ruby on Rails with Oracle?
Build ruby, gem, and rails
as per http://rubyonrails.org/download:
build rubybuild gemuse gem to install rails
Get Oracle Instantclient
Download from https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html
You need these two packages for your architecture.
instantclient-basicinstantclient-sdk
Unzip these files, and make this link
cd instantclient_10_2# .dylib for mac, .so for linuxln -s libclntsh.dylib.10.1 libclntsh.dylib
Build ruby-oci8
Note, JRuby users don't need ruby-oci8, but do need the Oracle JDBC jar, either ojdbc6.jar or ojdbc5.jar depending on whether you have Java 6 or Java 5.
Download from http://ruby-oci8.rubyforge.org/en/index.html and run
# DYLD for macexport DYLD_LIBRARY_PATH=/path/to/instantclient_10_2# LD for linuxexport LD_LIBRARY_PATH=/path/to/instantclient_10_2ruby setup.rb configruby setup.rb setupruby setup.rb install
Test with this line and your database connection string.
ruby -r oci8 -e "OCI8.new('scott/tiger@orcl').exec('select * from user_tables') do |r| puts r.join(','); end"
Install activerecord-oracle_enhanced-adapter
Note, not activrecord-oracle-adapter as many older pages mention.
gem install activerecord-oracle_enhanced-adapter
Do that sweet rails thing
rails railstestcd railstest# edit config/database.yml as belowruby script/generate scaffold comic title:string issue:integer publisher:stringrake db:migrateruby script/server
Test in browser
<http://localhost:3000/comics>
config/database.yml
Use database if you have a TNS entry, otherwise use host. Note that you have three entries (devel, test, production) to update.
development: adapter: oracle_enhanced database: orcl # format is tns-name entry host: myorclhost/orcl # format is hostname/instance-name username: scott password: tiger
References
Some additional links to previous answer.
If you are on a Mac then you can follow tutorial How to setup Ruby and Oracle Instant Client on Mac OS X to get access to Oracle database from Ruby.
Then you can read ActiveRecord Oracle enhanced adapter wiki to get Oracle connectivity in Ruby on Rails. This adapter is used in many Ruby on Rails on Oracle projects and is under active maintenance.
I also regularly post about Ruby and Oracle at my blog.
In my case I already had Ruby, gem, Rails and Oracle client on Windows 7. I installed ruby-oci8 binary package for Windows 32-bit:
Source: http://ruby-oci8.rubyforge.org/en/file.install-binary-package.html
gem install ruby-oci8gem install --platform x86-mingw32 ruby-oci8
And then:
gem install activerecord-oracle_enhanced-adapter
and you are ready to do Rails on Oracle.