2010-10-02 1 views
1

Je suis intéressé par l'apprentissage dans Rails 3, comment saisir l'URL avec quelque chose comme params[:urlpath]Rails, obtenir une partie d'un URL/modelstuff/31 --- comment obtenir 31?

et l'indexation puis avec/

donc si j'avais une URL comme exemples:

/books/1 
/books/1/authors/3 
/books/1/authors/3/chapters 
/books/1/authors/3/chapters/33 

Je pourrais toujours obtenir 1

quelque chose comme params[:urlpath] index[2]

I n eed ceci pour peupler le suivant qui se passe sur la page:

$.ajax({ 
    url: '/nav/sidenav', 
    data: "urlpath=" + urlpath 
}); 

idées? thxs

Répondre

2

Ajouter ce qui suit à votre routes.rb:

match '/modelstuff/:id' => "controller#method" 

Ensuite, vous pouvez utiliser params[:id]

+0

Je fais un appel AJAX pour obtenir une navigation secondaire via/nav/sidenav et j'ai besoin de connaître l'URL de la page en cours pour savoir comment remplir nav/sidenav correctement, ce qui explique pourquoi params [: id] ne travailler dans cette situation, mais je crois que j'ai besoin de la sidenav pour déterminer l'identité .. Pensées? – WozPoz

+1

@WozPoz - Vous devriez jeter un coup d'oeil au [Guide des rails] (http://guides.rubyonrails.org/routing.html#non-resourceful-routes) sur le routage et demander –

+0

merci. n'importe quelle raison pourquoi? – WozPoz

1

Si vos URL ressemblent /books/1/authors/3/chapters/33

Ensuite, vos itinéraires doivent être:

resources :books do 
    resources :authors do 
    resources :chapters 
    end 
end 

Cela s'appelle Itinéraires imbriqués.

Ensuite, dans votre contrôleur:

/app/controllers/chapters_controller.rb

def show 
    @book = Book.find(params[:book_id]) 
    @author = @book.authors.find(params[:author_id]) 
    @chapter = @author.chapters.find(params[:id]) 
end 

Trier de la magie.

+0

Très cool. Mais dans le cas mentionné ci-dessus, je n'appelle pas le chapters_controller. J'appelle app/controllers/navs – WozPoz

+0

Alors votre URL devrait ressembler à/nav? Book_id = 1 & author_id = 3 & chapter_id = 33 –

Questions connexes