Задать вопрос
zoonman
@zoonman
⋆⋆⋆⋆⋆

Как правильно сделать роутинг в Rails?

Задача немного тривиальная, но пока Ruby & Rails я плохо знаю.

В общем планируется сайт фотостудий. Внутри каждой есть фотографии и, возможно, разделы.
Планируется следующий ЧПУ
/:company/:photo/
или
/:company/:category/:photo

Понимаю, что нужно как-то скомпоновать вложенные ресурсы и сегменты.

Плюс нужно как-то уложить это все в то, что фотографии загружают фотографы, которые могут работать с несколькими студиями (то, чего я совсем не ожидал). Получается, что зайдя внутрь студии, они могут загрузить фото сразу в эту студию без лишних вопросов. Я думаю, это можно как-то сделать используя 2 разных правила.

И теперь самый неприятный момент - у компаний и категорий 100% могут быть человеческие псевдонимы и тут кроется загвоздка - как совместить id & alias. Единственное - создание constraint'а, который будет понимать, что переданы только цифры и это можно считать id, а если буквы, то псевдоним.
Непонятно только как будет работать такое /ooo-romashka/23/17.

Начало я себе так представляю
get '/:id', to: 'company#show', constraints: { id: /^\d.+$/ }
get '/:alias', to: 'company#show'

Но ведь это read-only. Как сделать полноценный RESTfull?
  • Вопрос задан
  • 2465 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
resources :company do
member do
# /company/50/:photos
resources :photos
end
collection do
get :category, to: "category#index"
end
end


Полноценный рестфулл - это ресурсы. А в ресурсы можно вкладывать мембер (то, что вешается на конкретный ресурс) и коллекецию (то, что на весь ресурс). Что имеется ввиду под категориям, не совсем понял, поэтому пример абстрактный.
Ответ написан
@vsuhachev
Если /:company/:photo/ и /:company/:category/:photo будут ссылаться на одну и ту же фотографию, это уже не рестфул. Да и поисковые системы не рекомендуют отдавать одну страницу по разным урлам

Я бы на вашем месте сделал как-то так:

/studies/ooo-romashka
/studies/ooo-romashka/categories/svadebnaya-siemka
/studies/ooo-romashka/photos/155
/studies/ooo-romashka/photos/?category=svadebnaya-siemka
/authors/ivanov-ivan-ivanovich/photos/?category=svadebnaya-siemka

Для псевдонимов поглядите этот гем, возможно он вам подойдет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
OTKLIK POWER Москва
от 80 000 до 150 000 ₽
Netwrk Буэнос-Айрес
от 5 000 до 7 500 $
от 6 000 до 8 000 $