У меня есть книги как ресурс и id, ean, isbn - его свойства. Я хочу, чтобы получить доступ как к books/id/1
или books/isbn/1212100000
или books/ean/1313911
Как проложить маршрут к книгам/id/1
В моем routes.rb, я написал следующее.
resources :books do
collection do
get 'isbn'
get 'ean'
get 'id'
end
end
Но, когда я пытаюсь получить доступ к л ocalhost:3000/books/id/1
, это дает .... Нет маршрут соответствует "/books/id/1
"
я могу получить доступ localhost:3000/books/id
хотя. Это означает, что мне нужно написать отдельное сопоставление в route.rb, но затем, что такое использование объявления ресурса?
Может ли кто-нибудь предложить мне сделать это без написания явных сопоставлений.
Добавление маршрутов членов также не работает, поскольку оно поддерживает маршруты форматов книг/1/id. Однако мне нужен маршрут книг формата/id/1. –
Затем вы должны использовать совпадение. Но эта схема URL не очень RESTful. – zsquare
Все, что я хочу, - это поиск любой таблицы не только по ее идентификатору, но и по другим атрибутам. но объявление этой таблицы как ресурса не помогает мне это сделать. матч всегда является вариантом, но я бы не хотел его использовать, поскольку я искал некоторые способы сделать это с помощью ресурса. Я просто удивляюсь, если никто никогда не сталкивался с таким требованием? –