Ruby on rails sintassi link_to
-
23-08-2019 - |
Domanda
Dopo aver seguito un esercitazione Ive ha trovato. Im ora rifare di nuovo, senza la parte ponteggi, per imparare meglio.
Tuttavia, modificando il mio \ app \ vista \ home \ index.html.erb per contenere:
<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>
ottengo un errore:
undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>
Prima ho fatto questo, ho fatto rake db:create
, definito una classe di migrazione e corsi rake db:migrate
, tutto senza un problema.
Quindi, il database dovrebbe contenere una tabella di messaggi. Ma quel comando link_to
cant sembrano trovare posts_path
. Quella variabile (o è ancora una funzione?) Probabilmente è definito attraverso la routine patibolo.
La mia domanda ora è; come faccio a farlo manualmente me stesso, definisco posts_path
?
Soluzione
È necessario definire un percorso per i tuoi messaggi config/routes.rb
Rails sintassi 2.x:
map.resources :posts
Rails sintassi 3.x:
resources :posts
Altri suggerimenti
I metodi _path sono generate dinamicamente in genere. L'errore mancante metodo avviene quando non c'è un percorso per l'oggetto specificato o in questo caso il metodo che si sta chiamando in modo esplicito.
La definizione di un percorso dovrebbe risolvere il problema. Hermand sopra ha mostrato un modo per farlo.
È possibile eseguire 'percorsi rake' dalla radice del vostro rotaie app per vedere tutti gli itinerari che sono configurate
<% = link_to "il mio blog", posts_path>
Se questo è esattamente ciò che il vostro erb conteneva, che manca il segno di percentuale alla fine dell'elemento scriptlet. Non sono sicuro se che ha causato il problema, o forse sto prendendo le cose troppo alla lettera ....