Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

undefined method `produtos_path' for #<ActionView::Base:0x000000000166e8>

Estou seguindo o curso https://cursos.alura.com.br/course/ruby-on-rails-5 e travei nesse erro : A página new foi criada para cadastrar novos produtos no banco de dados.

Imagem da tela mostrando o erro

Já procurei em vários sites e não onsigo achar o que esta causando o erro. Abaixo vou deixar os dados da aplicação

Arquivo de rotas:

Rails.application.routes.draw do

    post "despensa", to:"despensa#create"
    get "despensa/new", to: "despensa#new"
    root to: "despensa#index"
end

Arquivo do Controller:

class DespensaController < ApplicationController

    def index
        @produtos = Produto.order :nome
        @produto_menor_quantidade = Produto.order(:quantidade).limit 1    
    end

    def create
       produto = params.require(:produto).permit(:nome, :quantidade, :unidade_de_medida)
       Produto.create produto
    end
end

arquivo html da página:

<html>
    <body>
        <%= form_for Produto.new do |form|%>
            Nome <input type="text" name="nome"><br/>
            Quantidade<input type="number" step="0.01" name="quantidade"><br/>
            Unidade de medida <input type="text" name="unidade_de_medida"><br/>

            <button type="submit">Adicionar produto</button>
        <% end %>
    </body>
</html>
1 resposta
solução!

Consegui resolver, o que estava errado era o jeito de linkar no form

arquivo do form modificado:

<html>
    <body>
        <%= form_for(Produto.new, url: despensa_new_path) do |form|%>
            Nome <input type="text" name="nome"><br/>
            Quantidade<input type="number" step="0.01" name="quantidade"><br/>
            Unidade de medida <input type="text" name="unidade_de_medida"><br/>

            <button type="submit">Adicionar produto</button>
        <% end %>
    </body>
</html>