| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/02/2009 09:05:16
|
cleriston
JavaGuru
![[Avatar]](/images/avatar/f4e4b6af8c2d1b0e2111b045201aebc3.jpg)
Membro desde: 06/02/2007 10:54:37
Mensagens: 234
Offline
|
Olá pessoal!
Estou iniciando com Rails... Fiz o seguinte scaffold
Depois fiz o migrate e deu tudo certo
depois fiz
fiz o migrate e depois startei o server.
Quando entro no caminho http://localhost:3000/plantas ele funciona normal, mas quando entro em
http://localhost:3000/especies dá o seguinte erro
NameError in Especies#index
Showing app/views/especies/index.html.erb where line #22 raised:
undefined local variable or method `new_especie_path' for #<ActionView::Base:0x474b1e4>
Extracted source (around line #22):
19:
20:
21:
22: <%= link_to 'New especie', new_especie_path %>
RAILS_ROOT: D:/INSTAN~1.0-W/rails_apps/bonsai
...
Porque o de "especies" dá este erro e o de "plantas" não?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2009 17:32:10
|
Leozin
JWizard
![[Avatar]](/images/avatar/5dca4c6b9e244d24a30b4c45601d9720.png)
Membro desde: 18/06/2005 21:01:26
Mensagens: 2310
Localização: São Paulo/SP
Offline
|
por acaso tu alterou o teu routes.rb?
|
http://www.leozin.com.br/blog |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2009 07:16:05
|
cleriston
JavaGuru
![[Avatar]](/images/avatar/f4e4b6af8c2d1b0e2111b045201aebc3.jpg)
Membro desde: 06/02/2007 10:54:37
Mensagens: 234
Offline
|
nao alterei nao
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2009 11:12:57
|
Leozin
JWizard
![[Avatar]](/images/avatar/5dca4c6b9e244d24a30b4c45601d9720.png)
Membro desde: 18/06/2005 21:01:26
Mensagens: 2310
Localização: São Paulo/SP
Offline
|
tenta acessar o endereço http://localhost:3000/especies/new
ele funciona?
|
http://www.leozin.com.br/blog |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2009 11:49:02
|
cleriston
JavaGuru
![[Avatar]](/images/avatar/f4e4b6af8c2d1b0e2111b045201aebc3.jpg)
Membro desde: 06/02/2007 10:54:37
Mensagens: 234
Offline
|
sim, o new ele faz certinho, até inclui no banco... na hora de fazer o show ele dah pau
muito estranho neh...
Obs.: to usando o instantrails
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2009 11:50:23
|
cleriston
JavaGuru
![[Avatar]](/images/avatar/f4e4b6af8c2d1b0e2111b045201aebc3.jpg)
Membro desde: 06/02/2007 10:54:37
Mensagens: 234
Offline
|
descobri o problema.
Eu fiz varios testes, com mais campos, com outros tipos de campos, só funcionou quando nao utilizei o nome "especie"
Eu fiz o codigo abaixo e funcionou.
Especie deve ser alguma palava chave e ele se embanana :S
Comédia
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2009 13:10:36
|
cleriston
JavaGuru
![[Avatar]](/images/avatar/f4e4b6af8c2d1b0e2111b045201aebc3.jpg)
Membro desde: 06/02/2007 10:54:37
Mensagens: 234
Offline
|
Em outro gupo me falaram q era para adicionar este inflector (ainda nao descobri o q é)
Enfim, deu certo da seguinte forma :
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2009 17:04:44
|
victorcosta
JavaGuru
![[Avatar]](/images/avatar/42c88875bb90aeed57f01609fef5d9d7.png)
Membro desde: 07/01/2007 01:29:37
Mensagens: 220
Localização: Recife - PE
Offline
|
O problema eh q o Rails considera as formas singular e plural das palavras pra fazer as rotas, e vc usando a palavra 'especie' acabou gerando inconsistencia pq o rails eh adaptado pra palavras ingles Se vc for no console e digitar: Note q o plural de 'especie' pro rails eh 'especies', mas o singular de 'especies' eh 'especy' Quando vc faz o scaffold com 'especie' ele gera a classe 'Especie' e as view com as rotas no formato 'new_especie_path', 'especies_path', etc No routes.rb ele vai gerar um codigo 'map.resources :especies', quando vc rodar o servidor ele vai ver esse codigo e vai singularizar 'especies' para gerar as rotas, soh que o singular de 'especies' eh 'especy' (pelas regras do ingles), ai ele gera a rota 'new_especy_path' Se vc trocar 'new_especie_path' por 'new_especy_path' nas viewspára de dar erro, mas a solucao ideal eh isso q vc fez. O que vc adicionou no Inflector eh uma regra dizendo q o plural de 'especie' eh 'especies' e o singular de 'especies' eh 'especie'
This message was edited 1 time. Last update was at 14/03/2009 17:06:58
|
Meu blog com tutoriais de jQuery
http://www.victorcisneiros.com/blog/
Outros projetos
http://www.todolistr.com
http://www.bibliasocial.com
http://www.dota2feedback.com/
http://www.posjogo.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/03/2009 08:21:29
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
o problema é misturar inglês com português
o Ruby On Rails tem todos os padrões ajustados para o inglês, quando tu começa a usar nomes em português para as classes as vezes ele se perde ...
Este é um dos motivos para o código no meu livro estar em inglês (claro que todo o resto do texto esta em português )
Algumas soluções para este teu problema
A primeira é a que tu usou, alterar o nome da classe para alguma que os padrões de nomenclatura do inglês não sejam um problema
Você pode também editar o arquivo config/initializers/inflections.rb e configurar o rails para saber que o plural de especie é especies, ficaria algo parecido com:
Você pode também instalar o plugin "Brazilian Rails" que ja configura o Rails para o portugês.
E a melhor de todas na minha opinião, tu pode programar em ingês, ja que fica muito extranho "if AlgumaCoisaEmPortugues" por que fica parte do código em português e parte em inglês
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
|
|