bismoney
@bismoney

Дата в URL повтор, не разобрался?

Так и не смог разобраться.... прошу помощи друзья.

Сейчас есть routes.rb
resources :post_categories, path: '', only: :show do
   resources :posts, path: '', only: :show
end


И обрабочик в контроллере post_controller, где мы вытягиваем категорию по post_category_id и сам пост ассоц по id
def show
@posts = PostCategory.find_by!(seo_url: params[:post_category_id]).posts.find(params[:id])
end


Тем самым получая путь
site.com/category_name/id

Сейчас понадобилось получить такой путь
site.com/category_name/year/month/day/id

Где year/month/day это дата поста id

В routes.rb прописываю такую конструкцию
resources :post_categories, path: '', only: :show do
   resources :posts, path: '/:year/:month/:day', only: :show, constraints: { year: /\d{4}/, month: /\d{2}/, day: /\d{2}/ }
end


Но хоть убейся не могу понять как обработать эти параметры в контроллере...
params[:year], params[:month], params[:day]

Помогите кому не трудно.
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@vsuhachev
У вас какое-то масло масляное. Для того чтобы получить Post достаточно передать его id. Зачем вам в url еще категория и дата мне непонятно. Обычно, если используется url вида site.com/category_name/year/month/day, то он выдает группу объектов, отфильтрованную по категории и дате. Если вам нужно такое поведение - добавляйте в PostsController метод index и заводите такой роут на него.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы