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.
'/var/db/windows_support.mdb'
set_table_name 'Windows_Virises'
end
set_mdb_file
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/