Rails, получая часть URL / modelstuff / 31 --- как получить 31? - PullRequest
1 голос
/ 03 октября 2010

Мне интересно узнать в Rails 3, как получить URL с чем-то вроде params[:urlpath]

, а затем индексировать его с помощью /

так что, если бы у меня были примеры, подобные URL:

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

Я всегда мог получить 1

что-то вроде params[:urlpath] index[2]

Мне нужно это, чтобы заполнить следующее, что происходит на странице:

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

идеи? thxs

Ответы [ 2 ]

2 голосов
/ 03 октября 2010

Добавьте следующее в ваши маршруты.

1 голос
/ 03 октября 2010

Если ваши URL выглядят как /books/1/authors/3/chapters/33

Тогда ваши маршруты должны быть:

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

Это называется Nested Routes.

Затем в вашем контроллере

/ 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

Вроде магии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...