--
अभिनव
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


On Mon, Aug 31, 2009 at 5:39 AM, ji <[email protected]> wrote:

>
> 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.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to