# Using a model in a library

**URL:** <https://www.ruby-forum.com/t/using-a-model-in-a-library/154400>\
**Category:** Rails\
**Created:** [November 28, 2008, 7:10pm UTC](https://www.ruby-forum.com/t/using-a-model-in-a-library/154400 "2008-11-28T19:10:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![clauer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@clauer](https://www.ruby-forum.com/u/clauer)\
**Post date:** [November 28, 2008, 7:10pm UTC](https://www.ruby-forum.com/t/using-a-model-in-a-library/154400/1 "2008-11-28T19:10:59Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![clauer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@clauer](https://www.ruby-forum.com/u/clauer)\
**Post date:** [November 29, 2008, 2:05am UTC](https://www.ruby-forum.com/t/using-a-model-in-a-library/154400/2 "2008-11-29T02:05:39Z")

</div>

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

On Nov 28, 12:10 pm, Christian L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![clauer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@clauer](https://www.ruby-forum.com/u/clauer)\
**Post date:** [November 29, 2008, 2:46pm UTC](https://www.ruby-forum.com/t/using-a-model-in-a-library/154400/3 "2008-11-29T14:46:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![clauer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@clauer](https://www.ruby-forum.com/u/clauer)\
**Post date:** [December 4, 2008, 4:31pm UTC](https://www.ruby-forum.com/t/using-a-model-in-a-library/154400/4 "2008-12-04T16:31:11Z")

</div>

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 L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
