Using a model in a library


I'm trying to verify that a parameter is an instance of a specific class in Rails:

def schedule(action, *args)   if arg.is_a? Aircraft     ...   end end

I'm doing this in a library class (the file is in lib/) and I get an uninitialized constant Aircraft error. Aircraft is a model class, with a corresponding aircraft.rb file in app/models.

Can I use model classes and instances in a library? How?

Thanks, Xtian

How and where are you executing the code in this lib from, rake task, script/console, etc.?

Thanks for your answer: I tried to run the app in the browser: it works! So it doesn't work in RSpec. I didn't try the code in the browser at first as I'm trying to do TDD. Still stuck there, though.


Sounds like you just need a line like this in the top of the lib file:

require 'app/models/aircraft'

If its already loaded (ie: running script/server) nothing will change, but if its not already loaded (I don't use RSpec, but it sounds like its not autoloading classes) this should fix it. You might need to play with the path and do something like this:

require File.dirname(__FILE__)+'/../app/models/aircraft'