Forum: Ruby on Rails Using a model in a library

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ca20ac1b518dc2de6852f3c612fb0b8c?d=identicon&s=25 Christian Lescuyer (Guest)
on 2008-11-28 19:10
(Received via mailing list)
Hi,

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
6fabb84e727dee98d1277df56458cbac?d=identicon&s=25 Andrew Bloom (Guest)
on 2008-11-29 02:05
(Received via mailing list)
How and where are you executing the code in this lib from, rake task,
script/console, etc.?

On Nov 28, 12:10 pm, Christian Lescuyer <christian.lescu...@gmail.com>
Ca20ac1b518dc2de6852f3c612fb0b8c?d=identicon&s=25 Christian Lescuyer (Guest)
on 2008-11-29 14:46
(Received via mailing list)
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.

Christian
6fabb84e727dee98d1277df56458cbac?d=identicon&s=25 Andrew Bloom (Guest)
on 2008-12-04 16:31
(Received via mailing list)
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'


On Nov 29, 7:45 am, Christian Lescuyer <christian.lescu...@gmail.com>
This topic is locked and can not be replied to.