Quando busco um nome parcialmente, exemplo: "bo" de "Bolo" ele não encontra nenhum produto. Somente quando busco pelo nome completo, nesse caso "Bolo" que ele encontra. Vi que para que isso não acontecesse eu só precisaria colocar o % entre nome como está no meu produtos_controller.rb Alguém me ajuda please!
class ProdutosController < ApplicationController
before_action :set_produto, only: [:edit, :update, :destroy]
def index
@produtos = Produto.order :nome
@produto_com_desconto = Produto.order(:preco).limit 1
end
def create
@produto = Produto.new produto_params
if @produto.save
flash[:notice] = "Produto salvo com sucesso!"
redirect_to root_url
else
renderiza :new
end
end
def destroy
@produto.destroy
redirect_to root_path
end
def busca
@nome = params[:nome]
@produtos = Produto.where "nome like ?", "%#{@nome}%"
end
def new
@produto = Produto.new
@departamentos = Departamento.all
end
def edit
renderiza :edit
end
def update
if @produto.update produto_params
flash[:notice] = "Produto atualizado com sucesso"
redirect_to root_url
else
renderiza :edit
end
end
private
def produto_params
params.require(:produto).permit(:nome, :descricao, :preco, :quantidade, :departamento_id)
end
def set_produto
@produto = Produto.find(params[:id])
end
def renderiza(view)
@departamentos = Departamento.all
render view
end
end
busca.html.erb
<table class="table table-bordered table-hover">
<thead>
<tr>
<td><b>Nome</b></td>
<td><b>Descrição</b></td>
<td><b>Departamento</b></td>
<td><b>Preço</b></td>
<td><b>Quantidade</b></td>
<td colspan="2">
</tr>
</thead>
<tbody>
<%= render @produtos %>
</tbody>
</table>