# My controller seems to have trouble finding the model

**URL:** <https://www.ruby-forum.com/t/my-controller-seems-to-have-trouble-finding-the-model/174679>\
**Category:** Rails\
**Created:** [August 31, 2009, 12:23pm UTC](https://www.ruby-forum.com/t/my-controller-seems-to-have-trouble-finding-the-model/174679 "2009-08-31T12:23:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jijiji](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de053/32.png) [@jijiji](https://www.ruby-forum.com/u/jijiji)\
**Post date:** [August 31, 2009, 12:23pm UTC](https://www.ruby-forum.com/t/my-controller-seems-to-have-trouble-finding-the-model/174679/1 "2009-08-31T12:23:53Z")

</div>

in my \app\controllers\business\_controller.rb:

class BusinessController \< ApplicationController  
def search  
@businesses = Business.search(params[:businessname], params[:city])  
end  
end

in my \app\models\business.rb:

class Business \< ActiveRecord::Base  
def search(businessname, city)  
search\_condition = “%” + businessname + “%”  
find(:all, :conditions =\> [‘name LIKE ? AND city = ?’,  
search\_condition, search\_condition])  
end  
end

When I run my app in firefox, I get:

NoMethodError in BusinessController#search

undefined method `search’ for #Class:0x59c69cc

RAILS\_ROOT: c:/Ruby/Referme  
Application Trace | Framework Trace | Full Trace

C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
base.rb:1964:in `method_missing' c:/Ruby/Referme/app/controllers/business_controller.rb:3:in`search’

C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
base.rb:1964:in `method_missing' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:1322:in`send’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:1322:in `perform_action_without_filters' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:617:in`call\_filters’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
filters.rb:610:in `perform_action_without_benchmark' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ benchmarking.rb:68:in`perform\_action\_without\_rescue’  
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/  
core\_ext/benchmark.rb:17:in `ms' C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:10:in`realtime’  
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/  
core\_ext/benchmark.rb:17:in `ms' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ benchmarking.rb:68:in`perform\_action\_without\_rescue’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
rescue.rb:160:in `perform_action_without_flash' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ flash.rb:141:in`perform\_action’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:523:in `send' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:523:in`process\_without\_filters’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
filters.rb:606:in `process' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:391:in`process’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:386:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ routing/route_set.rb:433:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
dispatcher.rb:88:in `dispatch' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:111:in`\_call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
dispatcher.rb:82:in `initialize' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:29:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
query\_cache.rb:29:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ connection_adapters/abstract/query_cache.rb:34:in`cache’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
query\_cache.rb:9:in `cache' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:28:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
connection\_adapters/abstract/connection\_pool.rb:361:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/head.rb:9:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/methodoverride.rb:24:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ params_parser.rb:15:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
rewindable\_input.rb:25:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ session/cookie_store.rb:93:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
reloader.rb:9:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ failsafe.rb:11:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/lock.rb:11:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in`synchronize’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/lock.rb:11:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:106:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:  
31:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/urlmap.rb:46:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/urlmap.rb:40:in `each' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/debugger.rb:  
17:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/ log_tailer.rb:17:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/content\_length.rb:13:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/handler/webrick.rb:46:in`service’  
C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in`run’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in`start’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' C:/Ruby/lib/ruby/1.8/webrick/server.rb:95:in`start’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in`start’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' C:/Ruby/lib/ruby/1.8/webrick/server.rb:82:in`start’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem\_original\_require’  
C:/Ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:31:in  
`require’  
script/server:3

C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
base.rb:1964:in `method_missing' c:/Ruby/Referme/app/controllers/business_controller.rb:3:in`search’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:1322:in `send' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:1322:in`perform\_action\_without\_filters’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
filters.rb:617:in `call_filters' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:610:in`perform\_action\_without\_benchmark’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
benchmarking.rb:68:in `perform_action_without_rescue' C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in`ms’  
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active\_support/  
core\_ext/benchmark.rb:10:in `realtime' C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/ core_ext/benchmark.rb:17:in`ms’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
benchmarking.rb:68:in `perform_action_without_rescue' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rescue.rb:160:in`perform\_action\_without\_flash’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
flash.rb:141:in `perform_action' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:523:in`send’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:523:in `process_without_filters' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ filters.rb:606:in`process’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
base.rb:391:in `process' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ base.rb:386:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
routing/route\_set.rb:433:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:88:in`dispatch’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
dispatcher.rb:111:in `_call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ dispatcher.rb:82:in`initialize’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
query\_cache.rb:29:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:29:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
connection\_adapters/abstract/query\_cache.rb:34:in `cache' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ query_cache.rb:9:in`cache’  
C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active\_record/  
query\_cache.rb:28:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/ connection_adapters/abstract/connection_pool.rb:361:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/head.rb:9:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/methodoverride.rb:24:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
params\_parser.rb:15:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ rewindable_input.rb:25:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
session/cookie\_store.rb:93:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ reloader.rb:9:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
failsafe.rb:11:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/lock.rb:11:in `synchronize' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/lock.rb:11:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
dispatcher.rb:106:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb: 31:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/urlmap.rb:46:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/urlmap.rb:40:in`each’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/urlmap.rb:40:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/debugger.rb: 17:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/  
log\_tailer.rb:17:in `call' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/content_length.rb:13:in`call’  
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action\_controller/  
vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in`service’  
C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' C:/Ruby/lib/ruby/1.8/webrick/server.rb:173:in`start\_thread’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' C:/Ruby/lib/ruby/1.8/webrick/server.rb:162:in`start\_thread’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in`each’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' C:/Ruby/lib/ruby/1.8/webrick/server.rb:23:in`start’  
C:/Ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/ vendor/rack-1.0/rack/handler/webrick.rb:13:in`run’  
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111  
C:/Ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:31:in  
`gem_original_require' C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require’  
script/server:3

Request

Parameters:

{“businessname”=\>“sss”,  
“commit”=\>“Search”,  
“authenticity\_token”=\>“6otukF4R7SIjMgcXbXyYNFUJZivGGOwSEEsERR/+MHk=”,  
“location”=\>“ss”}

Show session dump

* * *

Response

Headers:

{“Content-Type”=\>"",  
“Cache-Control”=\>“no-cache”}

This looks like the Controller cannot find the Search function in my  
model, but apparently the function is defined there. So I am sure what  
is going on here.

---

<div class="post-metadata">

**Author:** ![jijiji](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de053/32.png) [@jijiji](https://www.ruby-forum.com/u/jijiji)\
**Post date:** [August 31, 2009, 12:25pm UTC](https://www.ruby-forum.com/t/my-controller-seems-to-have-trouble-finding-the-model/174679/2 "2009-08-31T12:25:04Z")

</div>

On Aug 31, 1:09 am, ji [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> class Business \< ActiveRecord::Base  
> def search(businessname, city)  
> search\_condition = “%” + businessname + “%”  
> find(:all, :conditions =\> [‘name LIKE ? AND city = ?’,  
> search\_condition, search\_condition])  
> end  
> end

> This looks like the Controller cannot find the Search function in my  
> model, but apparently the function is defined there. So I am sure what  
> is going on here.

You’ve created an instance method, but you’re trying to call it as if  
it was a class method (and you probably meant for city to be the  
second bind variable in your call to find)

Fred

---

<div class="post-metadata">

**Author:** ![jijiji](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de053/32.png) [@jijiji](https://www.ruby-forum.com/u/jijiji)\
**Post date:** [August 31, 2009, 12:49pm UTC](https://www.ruby-forum.com/t/my-controller-seems-to-have-trouble-finding-the-model/174679/3 "2009-08-31T12:49:40Z")

</div>

–  
à¤…à¤­à¤¿à¤¨à¤µ  
[http://twitter.com/abhinav](http://twitter.com/abhinav)

Make search a class method, ie, define search like this in your model:

def self.search(business\_name, city) # note “self”

## do something

end
