how to solve this problems gracefully

hey guys,i follow the Ruby On Rails Guides,but i didn't see the query about the guide,so i have a question:
name and title are attrs in posts,i need to find records by query name and title with any of them are none-empty
so should i need to detect the name or title such as:
if name!=nil and title==nil then
  Post.where('name=?')
elsif name==nil and title!=nil then
  Post.where('title=?')
elsif(name!=nil and title!=nil) then
  Post.where('name=? and title=?')

so much boring codes,isn't it?

i want to Post.clever_find(@post)

Hi dan,

You could do something like:

  ...
  posts = []
  if not name.blank? or not title.blank?
    sql_buf = []
    vals_buf = []
    if not name.blank?
      sql_buf << "name=?"
      vals_buf << name
    end
    if not title.blank?
      sql_buf << "title=?"
      vals_buf << title
    end
    conditions = [sql_buf.join(" and ")] + vals_buf
    posts = Posts.where(conditions).order(...)...
  end
  return posts
  ...

Jeff

conditions = \[sql\_buf\.join\(&quot; and &quot;\)\] \+ vals\_buf
posts = Posts\.where\(conditions\)\.order\(\.\.\.\)\.\.\.

Or
Post.where({:name => name, :title => title}.reject {|k,v| v.blank?})

Fred