Ruby on rails LINK_TO sintaxe
-
23-08-2019 - |
Pergunta
Depois de seguir um tutorial Ive encontrado. Im agora refazer-lo novamente, sem a parte de andaimes, para aprendê-la melhor.
No entanto, a edição de meu \ app \ views \ home \ index.html.erb para conter:
<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>
Eu recebo um erro:
undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>
Antes que eu fiz isso, eu corri rake db:create
, definiu uma classe de migração e rake db:migrate
correu, tudo sem nenhum problema.
Assim, o banco de dados deve conter uma tabela de mensagens. Mas esse comando link_to
cant parecem encontrar posts_path
. Essa variável (ou é mesmo uma função?) Provavelmente está definido através da rotina andaime.
A minha pergunta agora é; Como eu faço isso manualmente mim, definir posts_path
?
Solução
Você precisará definir um caminho para suas mensagens config/routes.rb
Rails 2.x sintaxe:
map.resources :posts
Rails 3.x sintaxe:
resources :posts
Outras dicas
Os métodos _path são gerados dinamicamente normalmente. O método de falta de erro ocorre quando não há uma rota para o objeto especificado ou neste caso, o método que você está chamando explicitamente.
A definição de uma rota deve corrigir isso. Hermand acima mostraram uma maneira de fazer isso.
Você pode executar 'rake routes' a partir da raiz de seus trilhos aplicativo para ver todas as rotas que estão configurados
<% = link_to "meu blog", posts_path>
Se isto é exatamente o que seu erb contido, está faltando o sinal de porcentagem no final do elemento scriptlet. Não tenho certeza se isso causou o problema, ou talvez eu estou levando as coisas muito literalmente ....