class Product < ActiveRecord::Base belongs_to :category has_many :items cattr_reader :per_page @@per_page = 4 def to_param self.string_id end def self.find_by_keywords(keywords, page) search_columns = %w{products.Name products.Description categories.Name} condition = keywords.collect { |keyword| '(' + search_columns.collect{ |column| "#{column} LIKE '%#{keyword}%'" }.join(' OR ') + ')'}.join(' OR ') paginate(:all, :conditions => condition, :include => 'category', :page => page) end end