Rails,获取URL/modelstuff/31的一部分---如何获得31?
我感兴趣的学习在Rails 3中,如何抓住URL的东西,如params[:urlpath]
Rails,获取URL/modelstuff/31的一部分---如何获得31?
,然后用/
所以索引,如果我有一个像例子网址:
/books/1
/books/1/authors/3
/books/1/authors/3/chapters
/books/1/authors/3/chapters/33
我总是可以得到1
像params[:urlpath] index[2]
I N eed这填充以下发生在页面上:
$.ajax({
url: '/nav/sidenav',
data: "urlpath=" + urlpath
});
想法? thxs
以下内容添加到您的routes.rb:
match '/modelstuff/:id' => "controller#method"
然后你可以使用params[:id]
如果您的网址看起来像/books/1/authors/3/chapters/33
那么你的路线应该是:
resources :books do
resources :authors do
resources :chapters
end
end
这被称为嵌套路线。
然后,在你的控制器:
/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
排序的魔力。
非常酷。但在上面提到的情况下,我没有调用chapters_controller。我打电话给app/controllers/navs – WozPoz 2010-10-02 23:52:59
然后你的url应该看起来像/ nav?book_id = 1&author_id = 3&chapter_id = 33 – 2010-10-03 12:20:31
我正在通过/ nav/sidenav进行AJAX调用以获取子导航,我需要知道当前页面的URL以了解如何正确填充nav/sidenav,这就是为什么params [:id]不会在这种情况下工作,但我相信我需要sidenav来确定ID ..想法? – WozPoz 2010-10-02 22:09:34
@WozPoz - 你应该看一下关于路由的[Rails Guide](http://guides.rubyonrails.org/routing.html#non-resourceful-routes),并请求 – 2010-10-02 22:10:50
谢谢。任何理由? – WozPoz 2010-10-02 22:11:47