Refaktoring mały

Hej,

Wkontrolerze mam:

def index
  @hardwares = Hardware.all
  @hardwares = @hardwares.where('sn LIKE ?', params[:sn]) if params[:sn].present?
  @hardwares = @hardwares.where('in LIKE ?', params[:in]) if params[:in].present?
  @hardwares = @hardwares.where('kind_id = ?', params[:kind]) if params[:kind].present?
end

Chce te trzy linie z where przenieść do modelu i robię tak:

def index
  @hardwares = Hardware.search(params)
end

w modelu mam:

def self.search(params)
???
end

No i właśnie co w miejsce ???

Pozdrawiam

def self.search(params)
  result = all
  result = result.where("sn LIKE ?", params[:sn]) if params[:sn]
  ...
  result
end

Jeśli masz problem z tego typu kodem to proponowałbym przerobić porządnie coś o samym języku Ruby.

Dzięki