On Mar 23, 2009, at 5:09 PM, Bharat Ruparel wrote:

>
> I am trying to monkey-patch the ActiveRecord::Base class to  
> incorporate
> a generic search class method so that it can be used by all model
> classes which need this functionality.  Since model classes directly
> inherit from ActiveRecord::Base and unlike controllers and helpers, do
> not have an ancestor class defined, I think I am forced to open the
> ActiveRecord::Base class and patch it?  May be I am wrong.  Anyway,  
> here

Why not create your method as a module and then include it into the  
classes you need it?  Look at any of the plugins out there that are of  
the "acts_as_xxxx" variety which add methods to the model they are  
called from... just follow those examples and you shouldn't need to  
directly modify AR::Base like this.


> is my code in the active_record_extensions.rb file that I created in  
> the
> RAILS_ROOT/lib directory:
>
> module ActiveRecord
>
>  class Base
>    def self.search(search, current_page)
>      if search.blank?
>        paginate(:all, :page => current_page || 1, :per_page => 5)
>      else
>        paginate(:all, :conditions => ["name LIKE ?", "%#{search}%"],
> :order => 'name',
>          :page => current_page || 1, :per_page => 5)
>      end
>    end
>  end
>
> end
>
> Note that paginate method comes from the will_paginate plugin  
> installed
> in vendor/plugins directory.
>
> This does not work.  My program is having trouble with the paginate
> method from will_paginate plugin being called in the code shown above?
>
> This seems to be a load_path issue?  One way to solve this is to  
> install
> will_paginate as a gem and then require it before calling paginate?   
> But
> is there a way to make with work as a plugin as I have it currently  
> for
> creating this generic routine?
>
> Thanks for your time in advance.
>
> Bharat
> -- 
> Posted via http://www.ruby-forum.com/.
>
> >


--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to