Ruby on rails Rails,获取URL/modelstuff/31的一部分——如何获取31?
我感兴趣的是学习Rails 3,如何使用类似于Ruby on rails Rails,获取URL/modelstuff/31的一部分——如何获取31?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我感兴趣的是学习Rails 3,如何使用类似于params[:urlpath] 然后用/ 因此,如果我有一个类似url的示例: /books/1 /books/1/authors/3 /books/1/authors/3/chapters /books/1/authors/3/chapters/33 我总能得到1 类似于params[:urlpath]索引[2] 我需要它来填充页面上发生的以下内容: $.ajax({ url: '/nav/sidenav', data: "ur
params[:urlpath]
然后用/
因此,如果我有一个类似url的示例:
/books/1
/books/1/authors/3
/books/1/authors/3/chapters
/books/1/authors/3/chapters/33
我总能得到1
类似于params[:urlpath]索引[2]
我需要它来填充页面上发生的以下内容:
$.ajax({
url: '/nav/sidenav',
data: "urlpath=" + urlpath
});
想法?thxs将以下内容添加到routes.rb中:
match '/modelstuff/:id' => "controller#method"
然后,如果您的URL看起来像
/books/1/authors/3/chapters/33,您可以使用参数[:id]
那么你的路线应该是:
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
有点神奇。我正在通过/nav/sidenav调用AJAX以获取子导航,我需要知道当前页面的URL以知道如何正确填充nav/sidenav,这就是为什么params[:id]在这种情况下不起作用,但我相信我需要sidenav来确定id。。想法?@WozPoz-你应该看看关于路由和requests@WozPoz-因为它提供了关于各种方法的信息来做你想做的事情。ok在上面添加了AJAX调用来帮助清除用例。谢谢,伙计,真酷。但在上面提到的情况下,我不会打电话给控制器。我正在调用app/controllers/nav,您的url应该是/nav?book\u id=1和author\u id=3和chapter\u id=33