Flash [: ошибка] не отображается при перенаправлении пользователя - PullRequest
0 голосов
/ 23 января 2012

Я внедряю в Ruby on Rails, и когда пользователь вводит что-то неправильное или происходит что-то неправильное, пользователь должен вернуться на предыдущую страницу с правильным сообщением об ошибке.Я попытался сделать это с помощью:

redirect_to 'javascript:history.go(-1)', flash.now[:error] =>"Something went wrong"

Теперь это возвращает нас к предыдущей странице, но это без ошибки прошивки?Кто-нибудь знает, как это исправить?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Я пытался:

 redirect_to 'match', :notice => 'Something went wrong'

Совпадение на предыдущей странице,но теперь я получаю сообщение об ошибке из своего браузера:

No data received
Unable to load the webpage because the server sent no data.

Ответы [ 3 ]

3 голосов
/ 23 января 2012

Вы не можете смешивать Javascript и Ruby таким образом.Ваш вызов Javascript не выполняет никаких побочных действий на сервере, поэтому ваш код ruby ​​никогда не выполняется.

обработка ошибок по умолчанию Ruby on Rails довольно удобна, и если вы можете, то лучшеиспользуйте его.

Если вы действительно не можете его использовать, вам придется выбирать между Ruby и Javascript.Рекомендуемый способ - Ruby:

redirect_to user_path(@user), :notice =>"The user was successfully created"

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

2 голосов
/ 23 января 2012

Использование:

redirect_to :back, :flash => {:error => "Error"}
1 голос
/ 23 января 2012

flash.now запускает вспышку в той же последовательности рендеринга. После перенаправления вы находитесь на недавно отрендеренной странице, и поэтому вы не должны использовать flash.now, а что-то вроде

redirect_to :back, error: 'Something went wrong'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...