How to use ActiveMDB in Ruby on Rails

First, let me say: You probably shouldn't use ActiveMDB in Rails. ActiveMDB is intended for exploration and for exciting action-movie narrow escapes from Access databases. ActiveMDB is READ ONLY. If you really, really need to, though, here's how: Install MDB Tools http://mdbtools.sourceforge.net/ Install the ActiveMDB gem: gem install activemdb Require the library somewhere. ./config/environment.rb might work require 'active_mdb' In a model file (e.g. ./app/models/windows_malware.rb) create a model that subclasses ActiveMDB::Base. Set the path to the .mdb file and the name of the table.

class WindowsVirus < ActiveMDB::Base
  set_mdb_file '/var/db/windows_support.mdb'
  set_table_name 'Windows_Virises'
end
You can use the ActiveMDB model in your controllers much like you would an ActiveRecord model. The only find methods at the time of this writing are find_all and find_first. These methods take a hash that specifies the conditions for the WHERE clause. The keys to the hash are symbols representing the field names in the Access database. ActiveMDB will let you use downcased-underscored versions of the field names from the db. E.g. you can use :executable_name for an Access field "Executable Name". When the field type is text or char, the WHERE conditions use LIKE with wildcards before and after the search value. viruses = WindowsVirus.find_all :executable_name => 'virus.exe', :severity => 2 Once you have an instance of an ActiveMDB class, you can use the same Rails-like field names as methods to retrieve attributes: return unless viruses.first.executable_name =~ /exe/

0 comments: