У меня есть набор страниц с общедоступным атрибутом. Я хочу, чтобы файл маршрутов обрабатывал динамические маршруты, но только для общедоступных страниц.Динамические маршруты в рельсах с условием
В настоящее время у меня есть следующее, но ограничений нет, все страницы видны. То, что я хотел, это зайти на страницу, только если страница общественности еще поднять 404.
Page.public.each do |page|
get "/:slug", controller: 'pages', action: 'show' if page.public?
end
Хороший вопрос. В декларации текущих маршрутов изменений не требуется? – olimart
В текущем объявлении будет создан маршрут '/: slug' для каждого объекта страницы, поэтому я бы заменил его просто 'get '/: slug', controller: 'pages', action: 'show''. Или просто 'get '/: slug' => 'pages # show''. Я предполагаю, что параметр slug - это какое-то параметризированное уникальное имя, которое идентифицирует страницу при указании на page.find – roo
Это вызывает ошибку в контроллере в is_public метод неправильное количество аргументов (0 для 1) – olimart