7

Voglio passare un parametro all'azione indice, ma sto solo ottenendo l'azione di visualizzazione.Come aggiungere parametri all'azione/metodo dell'indice delle rotaie?

routes.rb:

Test1::Application.routes.draw do 
    resources :blog 
end 

blog_controller.rb:

def show 
    # code 
    end 

    def index 
    # code 
    end 

View URL che inviano per mostrare l'azione invece all'azione index:

<a href="/blog/myvar"> My link </a> 

Cosa devo aggiungere instrada il file o in vista?

uscita dei miei percorsi:

$ rake routes 

blog GET /blog(.:format)   {:action=>"index", :controller=>"blog"} 

blog GET /blog/:id(.:format)  {:action=>"show", :controller=>"blog"} 
+0

non sono sicuro se ho capito . vuoi passare un parametro all'azione indice? – c0deNinja

+0

sì per indicizzare l'azione, se si dispone di altro modo si prega di scrivere – Yosef

risposta

9

La riga di comando vi mostrerà percorsi è possibile utilizzare con rake routes

Il percorso che si desidera è blogs_path ed è possibile aggiungere un parametro a quello, ad esempio, blogs_path(other_item => :value).

Esattamente come dipenderà se si tenta di utilizzarlo in un controllore, un'altra vista, ecc

Per la vista hanno: <%= link_to 'My Link', blogs_path(:other_item => value) %>

+0

si prega di consultare il mio modifica – Yosef

+0

si prega di vedere i miei percorsi in uscita in modifica. Provo a fare blog_path ('myparam' =>: valore) ma ci vuole per mostrare l'azione – Yosef

+0

aggiornata la risposta di nuovo. –

1

Sembra che si desidera 2 percorsi:

/blogs/:other_param 
/blogs/:id 

Ma, per quanto intelligente come Rails, non può capire se il param è destinato a essere trattato come un other_param o come un id.

Quindi la soluzione più semplice è quello di aggiungere questa strada per i valori di default delle risorse in questo modo:

resources :blogs 
get "/blogs/other_param/:other_param", to: "blogs#index", as: "other_param_blogs" 

In questo modo Rails sa che se si sta andando a/blog/altro_param/corrente, allora sarà il trattamento di corrente come il: other_param.

1

Usa sotto il codice per passare parametri:

<a href="/blog?name=test">My link </a> 

o

<%= link_to "My link", blog_path(name: "test") %> 

sopra il codice favore all'azione indice con nome come chiave e prova come parametro,

Problemi correlati