# Rails Beginner.. NoMethodError

**URL:** <https://www.ruby-forum.com/t/rails-beginner-nomethoderror/154352>\
**Category:** Rails\
**Created:** [November 28, 2008, 5:28am UTC](https://www.ruby-forum.com/t/rails-beginner-nomethoderror/154352 "2008-11-28T05:28:23Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![on9west](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/6f9a4e/32.png) [@on9west](https://www.ruby-forum.com/u/on9west)\
**Post date:** [November 28, 2008, 5:28am UTC](https://www.ruby-forum.com/t/rails-beginner-nomethoderror/154352/1 "2008-11-28T05:28:23Z")

</div>

Dear all

I encounter error when I login my Web application  
NoMethodError in AdminController#login  
undefined method `get\_title’ for #Class:0x63ac78

Here is part of my code  
controller/admin\_controller.rb  
def login  
session[:user\_id] = nil  
if request.post?  
if User.authenticate(params[:name], params[:password])  
user = User.find\_by\_name(params[:name])  
if !user  
user = User.new  
user.name = params[:name]  
user.title = User.get\_title #I think this trigger the error  
user.save  
end  
session[:user\_id] = params[:name]  
redirect\_to(:controller =\> ‘ecpath\_app\_version’, :action =\>  
‘index’)  
else  
#flash[:notice] = “Invalid user/password combination”  
end  
end  
end

Here is my user model  
model/user.rb  
require ‘net/ldap’

class User \< ActiveRecord::Base

set\_table\_name “users”  
attr\_accessor :title

def self.authenticate(username,password)  
treebase = “dc=corp,dc=ha,dc=org,dc=hk”  
filter = Net::LDAP::Filter.eq( “sAMAccountName”, username )  
login\_succeeded = false  
ldap\_con = initialize\_ldap\_con(username,password)  
if ldap\_con.bind  
login\_succeeded = true  
@title=ldap\_con.search( :base =\> treebase, :filter =\> filter,  
:attributes =\> ‘displayname’).first.displayname.to\_s  
end  
login\_succeeded  
end

# I have define the get\_title here…

def get\_title  
return @title  
end

My users table schema  
name varchar(20)  
created\_at datetime  
updated\_at dataetime  
title varchar(30)

Please give me some advices. Thank you.

Valentino

---

<div class="post-metadata">

**Author:** ![on9west](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/6f9a4e/32.png) [@on9west](https://www.ruby-forum.com/u/on9west)\
**Post date:** [November 28, 2008, 5:32am UTC](https://www.ruby-forum.com/t/rails-beginner-nomethoderror/154352/2 "2008-11-28T05:32:29Z")

</div>

try changing User.get\_title to user.get\_title  
you are trying to access a method on the class instead of on the  
instance.

Cheers  
Simon

On Fri, 28 Nov 2008 13:28:23 +0900, Valentino L.
