Настройка map.resources в Rails - PullRequest
       17

Настройка map.resources в Rails

0 голосов
/ 21 сентября 2009

Предположим, у меня есть модель Book, которая содержит много моделей Page.

Маршрутизация для этого будет такой:

map.resources :books do |book|
    book.resources :pages
end

Следование по умолчанию Rails приводит к проблемам. Предположим, что Книга № 1 имеет 10 страниц. Первая страница в Книге № 2 будет иметь следующий маршрут:

/books/2/pages/11

Это довольно плохой маршрут, что более логично:

/books/2/pages/1

Или даже это:

/books/2/1

Есть ли способ по-прежнему использовать map.resources, но получить такой результат:

/books/{book.id}/pages/{page.page_number}

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

Как говорит Август, для этого нужно использовать собственную маршрутизацию Но для страниц вам не нужны полные маршруты ресурсов. Нужно будет только шоу.

Так что-то вроде:

map.resources :books do |book|
    book.page ':page_id', :action => 'index'
end

Будет отображать URL книг по умолчанию для отображения индекса, одной книги и добавления / редактирования их. Но также страница

/ книги / {book.id} / {page_id}

Который отображается на действие индекса с параметром "page_id". Вам нужно только отобразить соответствующую страницу с книгами;)

1 голос
/ 21 сентября 2009

Нет. Для этого вы должны использовать собственную маршрутизацию.

Не стесняйтесь черпать вдохновение из http://github.com/augustl/kii/blob/master/config/routes.rb

0 голосов
/ 21 сентября 2009

Вы также можете попробовать опцию мелкой настройки для вашей маршрутизации!

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