# Undefined method 'auth' for MyLibrary:Class

**URL:** <https://www.ruby-forum.com/t/undefined-method-auth-for-mylibrary-class/134308>\
**Category:** Rails\
**Created:** [April 9, 2008, 7:01pm UTC](https://www.ruby-forum.com/t/undefined-method-auth-for-mylibrary-class/134308 "2008-04-09T19:01:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cumom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/bc8723/32.png) [@cumom](https://www.ruby-forum.com/u/cumom)\
**Post date:** [April 9, 2008, 7:01pm UTC](https://www.ruby-forum.com/t/undefined-method-auth-for-mylibrary-class/134308/1 "2008-04-09T19:01:52Z")

</div>

I have a file my\_library.rb in the lib folder.  
class MyLibrary  
def auth(username,password)  
end  
end

I know it doesn’t do anything yet, but I wanted to eliminate the  
possibility of errors in the method.

class MyController \< ApplicationController  
require ‘my\_library’  
def index  
MyLibrary.auth(“username”,“password”)  
end  
…  
end

As I try to invoke the auth method from the controller above I get  
this exception:

NoMethodError in Person summary requestsController#index

undefined method `auth’ for MyLibrary:Class  
RAILS\_ROOT: /Users/peterivie/AptanaProjects/AMC

Application Trace | Framework Trace | Full Trace  
app/controllers/person\_summary\_requests\_controller.rb:16:in `index' -e:2:in`load’  
-e:2

I also tried MyLibrary::auth(“username”,“password”)

I am new to Ruby so I am probably missing something obvious. I am  
trying to create some code to download xml from a (non-rails) REST API.

---

<div class="post-metadata">

**Author:** ![cumom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/bc8723/32.png) [@cumom](https://www.ruby-forum.com/u/cumom)\
**Post date:** [April 9, 2008, 7:05pm UTC](https://www.ruby-forum.com/t/undefined-method-auth-for-mylibrary-class/134308/2 "2008-04-09T19:05:23Z")

</div>

Hi –

On Wed, 9 Apr 2008, cumom wrote:

> I also tried MyLibrary::auth(“username”,“password”)
> 
> I am new to Ruby so I am probably missing something obvious. I am  
> trying to create some code to download xml from a (non-rails) REST API.

You’ve defined auth as an instance method, not a class method. Try  
this:

class MyLibrary  
def self.auth … etc.

David

–  
Rails training from David A. Black and Ruby Power and Light:  
ADVANCING WITH RAILS April 14-17 New York City  
INTRO TO RAILS June 9-12 Berlin  
ADVANCING WITH RAILS June 16-19 Berlin  
See [http://www.rubypal.com](http://www.rubypal.com) for details and updates!

---

<div class="post-metadata">

**Author:** ![cumom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/bc8723/32.png) [@cumom](https://www.ruby-forum.com/u/cumom)\
**Post date:** [April 9, 2008, 7:28pm UTC](https://www.ruby-forum.com/t/undefined-method-auth-for-mylibrary-class/134308/3 "2008-04-09T19:28:49Z")

</div>

Thanks for the quick response.  
Your suggestion and a server reboot fixed it.  
That’s probably something I would understand better if I had payed  
more attention in my class on object oriented programming years ago. I  
will assume the difference is that class methods can be called without  
creating an actual object (or instance of the class). That makes  
sense.

Thanks again, I should have asked about 4 hours of head beating ago.
