2013-04-09 2 views
0

В настоящее время у меня есть три уровня страниц, первый, второй и третий уровни. У каждого из них есть ссылка например:динамически создавать маршруты - рельсы

/firstlevel

/firstlevel/secondlevel

/firstlevel/secondlevel/thirdlevel

каждая страница третьего уровня только ссылки на одной второй странице уровня и каждый второй страницы уровня связывает только одну первую страницу уровня. Однако на данный момент вы можете ввести любую первую секунду и третью ссылку, и страница третьего уровня все равно будет отображаться. Мне нужна какая-то проверка, так что есть только один способ добраться до страницы третьего уровня; используя правильные ссылки первого и второго уровня.

Это то, что у меня в маршрутах файл:

match "/:reference" => "service#firstlevel" 
match "/:reference/:reference" => "service#secondlevel" 
match "/:reference/:reference/:reference" => "service#thirdlevel" 
+0

Ваши ссылки уникальны? Если да, то это прямо. Пожалуйста, добавьте более подробную информацию. – tamizhgeek

+0

Я не уверен, что понимаю вас полностью .. но каждая страница имеет уникальную ссылку, да. – user1738017

+0

Затем при обслуживании # действие третьего уровня проверяет правильные ссылки первого и второго уровня и только если они существуют, отображают страницу третьего уровня. – tamizhgeek

ответ

0

Добавлено это в мой контроллер для каждого метода:

if request.fullpath == ("/#{@s.firstlevel.reference}/#{@s.reference}") 

else 
    render :action => "error404" 

Возможно, это не лучший способ сделать что-то.

0

Это даст вам/Компании/народы/Работа

resource :companies do 
    resource :people do 
    resource :jobs 
    end 
end 

на маршрутах

Смежные вопросы