5
respostas

Problema para mudar a linguagem

está dando este error

:en is not a valid locale

nessa linha "

<%= f.label "nome" %>
5 respostas

Oi Thiago, tudo bem? Cola a mensagem de erro completa por favor? O erro exatamente não me parece estar nessa linha.

Tudo bem, e contigo ? No momento tenho que arrumar esse bug logo, que não ta deixando salvar produto se não estiver validado. Que seria onde mostraria o texto traduzido

Showing D:/Alura/rails4/lojadecamiseta/app/views/produtos/new.html.erb where line #19 raised:

undefined method `map' for nil:NilClass
Extracted source (around line #19):
17
18
19
20
21
22

                <div class="form-group">
                    <%= f.label :departamento%>
                    <%= f.collection_select :departamento_id, @departamentos, :id, :nome, {}, class: "form-control"%>

                </div>
                <div class="form-inline">

Rails.root: D:/Alura/rails4/lojadecamiseta

Application Trace | Framework Trace | Full Trace
app/views/produtos/new.html.erb:19:in `block in _app_views_produtos_new_html_erb__890146491_74098788'
app/views/produtos/new.html.erb:8:in `_app_views_produtos_new_html_erb__890146491_74098788'
app/controllers/produtos_controller.rb:16:in `create'
Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"K+Fe8XfMXeiL7zRkdg+7TXV6NDE/Gc7gpyX2V0xFA3Xum/c8Aytk8yZPabckZY8hsHHh/qrA55Oc/Jvmq5+q/Q==",
 "produto"=>{"nome"=>"", "descricao"=>"", "departamento_id"=>"1", "quantidade"=>"", "preco"=>""},
 "commit"=>"Salvar Produto"}

Thiago, esse erro acontece logo após você submeter o formulário, é isso? Ou assim que abre o formulário? Cola aqui o seu produtos/new.html.erb pra gente ver?

Ao enviar o formulario





                <% @produto.errors.full_messages.each do |m|%>
                    <div class="alert alert-danger" role="alert"><%=m%></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, class: "form-control", rows: 4 %>  
                </div>
                <div class="form-group">
                    <%= f.label :departamento%>
                    <%= f.collection_select :departamento_id, @departamentos, :id, :nome, {}, class: "form-control"%>

                </div>
                <div class="form-inline">
                    <%= f.label :quantidade%>
                    <%= f.number_field :quantidade, step: 1, class: "form-control"%> 

                    <%= f.label :preco%>
                    <%= f.number_field :preco, class: "form-control"%> 

                    <%= f.submit "Salvar Produto", class: "btn btn-primary"%>
                </div>



            <% end %>
            <%= link_to "LISTAGEM", root_url%>

insira seu código aqui


MODEL

class Produto < ApplicationRecord
    validates :quantidade, presence: true
    validates :nome, length: {minimum: 5}

    belongs_to :departamento
end

E o seu Controller? O erro diz que houve um erro ao usar o map em objeto que não foi definido (nilClass = classe não definida) eu estou achando que é a questão dos departamentos. Essa classe existe? O objeto departamentos me parece que está voltando como nulo. Aparecem os departamentos no formulário corretamente?