help correct and improve this WHERE

Hi,

I am trying to build a search form with multiple field input. And while the single field search is working just fine, I am having some issues creating the WHERE with the two fields joined. Here is the code.

  def index     @cities = City.order("province_id, name").page(params[:page])

    # Need to create this condition for now I have added a place holder.     if (!params[:name_like].blank?) && (!params[:province_like].blank?)       @cities = City.order("province_id, name").page(params[:page])

    # This if works just fine     elsif !params[:name_like].blank?       @cities = City.where(:name.matches => ('%' + params[:name_like] + '%')).order("province_id, name").page(params[:page])

    # This if works just fine     elsif !params[:province_like].blank?       @cities = City.joins(:province).where(:province => {:name.matches => ('%' + params[:province_like] + '%')}).order("province_id, name").page(params[:page])

    end   end

Also is there a better way to write the same piece of code?