Bom dia, estou com um pequeno problema. Quando eu tento alterar ou criar um produto, não consigo renderizar suas páginas. Elas ficam brancas e apenas carrega a parte da navbar. Poderia me ajudar? Coloquei os códigos abaixo.
Código do arquivo "_form.html.erb"
<% @produto.errors.full_messages.each do |message| %>
<div class="alert alert-danger">
<%= message %>
</div>
<% end %>
<%= form_for @produto do |f| %>
<div class="form-group">
<%= f.label :nome %>
<%= f.text_field :nome, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :descricao %>
<%= f.text_area :descricao, rows: 4, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :departamento %>
<%= f.collection_select :departamento_id, @departamentos, :id, :nome, {}, class: "form-control" %>
</div>
<div class="form-inline">
<div class="form-group">
<%= f.label :quantidade %>
<%= f.number_field :quantidade, step: 1, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :preco %>
<%= f.number_field :preco, step: 0.1, class: "form-control" %>
</div>
<%= f.submit texto_da_acao, class: "btn btn-primary" %>
</div>
<% end %>
Código de "new.html.erb"
<% render partial: "form", locals: {texto_da_acao: "Criar o Produto"}%>
Código de "edit.html.erb"
<% render partial: "form", locals: {texto_da_acao: "Atualizar o produto"}%>
Código de "produtos_controller.rb"
class ProdutosController < ApplicationController
before_action :set_produto, only: [:edit, :update, :destroy]
def index
@produtos_por_nome = Produto.order :nome
@produtos_por_preco = Produto.order(:preco).limit 2
end
def new
@produto = Produto.new
renderiza :new
end
def busca
#busca no banco
@nome= params[:nome]
@produtos= Produto.where "nome like ?","%#{@nome}%"
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
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
set_produto
@produto.destroy
redirect_to root_url
end
private
def produto_params
params.require(:produto).permit :nome,:descricao, :quantidade, :preco, :departamento_id
end
def renderiza(view)
@departamentos = Departamento.all
render view
end
def set_produto
id=params[:id]
@produto=Produto.find(id)
end
end