2009-03-29 5 views
0

Я пытаюсь создать мастер создания пользователя, где пользователь может перейти только на страницу, соответствующую текущему шагу мастера, в котором находится пользователь.Rails условные маршруты

Я уже разобрался в функции конечного автомата. Текущее состояние сохраняется в БД. Это не проблема

Проблема заключается в том, как перенаправить пользователя на нужную страницу.

Сначала я попробовал фильтр перед фильтром, но это привело к циклу перенаправления. Решение для этого было грязным.

Следующее, что я пробовал, - это использовать redirect_to для отправки запроса на действие, которое затем перенаправляется на нужную страницу. Это привело к DoubleRenderError, потому что я перенаправляю дважды. Я думал, что redirect_to - это новый HTTP-запрос, но, похоже, это не так.

Теперь мне интересно, можно ли настроить подобные функции в маршрутах напрямую. Мне нужно будет иметь доступ к БД для получения текущего состояния. Я понятия не имею, как это делается или если это возможно даже

Любые идеи?

Спасибо

ответ

2

Я не уверен, если я понимаю ваш вопрос полностью.

Однако причина, по которой вы получили двойную визуализацию, заключается в том, что после того, как обычный код redirect_to ruby ​​продолжал выполняться. В какой-то момент этот код попытался снова отобразить данные (следовательно, DoubleRenderError).

Вы можете использовать:

redirect_to [...] and return false 

Это предотвратит поздний код из выполняются и, следовательно, предотвратить DoubleRenderError.

Удачи вам!

0

Я думаю, этот вопрос так же, как я испытал вчера (Im на Rails 2.1), мое решение можно найти здесь на my blog, it's really simple !

0

я думаю, это approach из :constraints => определения может быть именно то, что вы искали

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