I would like to merge this method from a controller into a separate model, called search. class DudesController < ApplicationController def search @address = params[:address] @within = params[:within] @dudes = Restaurant.find :all, :origin => @address, :within => @within, :order => ''distance'' respond_to do |format| format.html # index.html.erb format.xml { render :xml => @restaurants } end end This is the search model: class Search < ActiveRecord::Base acts_as_mappable :auto_geocode => true validates_numericality_of :minimum_age, :maximum_age, :allow_nil => true def dudes @dudes ||= find_dudes end private def find_dudes Dude.find(:all, :conditions => conditions) end def minimum_age_conditions ["dudes.birthdate <= ?", Date.today - minimum_age.years] unless minimum_age.blank? end def maximum_age_conditions ["dudes.birthdate >= ?", Date.tomorrow - (maximum_age+1).years] unless maximum_age.blank? end def category_conditions ["dudes.category_id = ?", category_id] unless category_id.blank? end def conditions [conditions_clauses.join('' AND ''), *conditions_options] end def conditions_clauses conditions_parts.map { |condition| condition.first } end def conditions_options conditions_parts.map { |condition| condition[1..-1] }.flatten end def conditions_parts private_methods(false).grep(/_conditions$/).map { |m| send(m) }.compact end end I assume I would write something like def location_conditions end I don''t know how to get the dude.address into a location_conditions method. The search controller is a simple scaffold with the search using the create method. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.