Измените свою логику на это:
def search
@products = []
@search = params[:search] && !params[:search].blank? ?
Product.searchlogic(params[:search]) : nil
@products = @search.all unless @search.nil?
end
Конечно, вы можете оставить свое заявление if следующим образом:
def search
@products = []
@search = nil
if params[:search] && !params[:search].blank?
Product.searchlogic(params[:search])
end
@products = @search.all unless @search.nil?
end