Skip to content
An SQL condition builder tool http://code.google.com/p/railswhere/
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gitignore
CHANGELOG
Gemfile
Gemfile.lock
MIT-LICENSE
README
init.rb
railswhere.gemspec

README

= Where clause generator
== Author: Tim Harper ( "timseeharperATgmail.seeom".gsub("see", "c").gsub("AT", "@") )

<b>Usage example</b>

=== Returning SQL

 sql = Where.new('x=?',5).and( Where.new('x=?',6).or('x=?',7)).to_s
 # returns (x=5) and ( ( x=6 ) or ( x=7 ) ) 
 
=== Building a complicated where clause made easy
 
 def get_search_query_string
 
   where = Where.new
   where.and('users.first_name like ?', params[:search_first_name] + '%') unless params[:search_first_name].blank?
   where.and('users.last_name like ?', params[:search_last_name] + '%') unless params[:search_last_name].blank?
 
   status_where = Where.new
   for status in params[search_statuses].split(',')
     status_where.or 'status=?', status
   end
   where.and status_where unless status_where.blank?
 
   where.to_s
 end
 
User.find(:all, :conditions => get_search_query_string)
 
===  Inline
 
   User.find(:all, :conditions => Where.new('first_name like ?', 'Tim').and('last_name like ?', 'Harper') )
   # Sweet chaining action!
Something went wrong with that request. Please try again.