Fazendo Uma Busca/Pesquisa Sem Criar Uma Nova Action No Controller Em Rails

Criamos um método dentro do model relacionado a pesquisa:

1
2
3
4
5
6
7
8
9
Model
  def self.search(search)
      if search.present?
          joins(:category).where('title LIKE ?', '%'+search+'%' )
      else
          joins(:category)
      end
  end
end

Agora dentro da index do controller relacionado colocamos o seguinte form:

1
2
3
4
<%= form_tag search_path, :method => 'get' do %>     
      <%= text_field_tag :search, params[:search] %>
      <%= submit_tag "Buscar/Pesquisar" %>    
<% end %>

Vamos chamar o metodo na index do controller assim:

1
2
3
def index
    @objeto = Model.search(params[:search])
end

E agora é só clicar no botão Buscar/Pesquisar, simples e fácil.

Comments