Проблемы с установкой флеш сообщений в рельсах - PullRequest
1 голос
/ 02 января 2012

Я создал проект на GitHub, в котором есть несколько флеш-сообщений.Например, со знаком Твиттера в проекте, который я получил, приходит с этим красным сообщением об ошибке неудачного входа в систему

  flash[:error] = "Sign in with Twitter failed"

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

Например, когда я пытался это сделать

redirect_to show_path, flash[:error] => "Twitter's saying you're trying to post the same message twice"

Это просто не отправка сообщения в Твиттер и отсутствие сообщения об ошибке.Когда я изменяю => на =, это разрывает все приложение (когда я пытаюсь опубликовать дважды), давая мне следующее сообщение:

 can't convert Symbol into String

Даже незнакомый (для меня), у меня нет проблем с:уведомление.Это было хорошо.

redirect_to show_path, :notice => "Your Tweet was posted!"

Кто-нибудь может объяснить, почему это происходит? Это проект на GitHub .

Ответы [ 3 ]

4 голосов
/ 02 января 2012

Обратите внимание, что в вашем примере с уведомлением вы используете необработанный символ :notice в хэш-аргументе redirect_to вместо flash[:notice]. В вашем коде с ошибкой flash вы пытаетесь использовать flash[:alert]. Вам нужно передать только символ, поэтому попробуйте

redirect_to show_path, :error => "Twitter's saying you're trying to post the same message twice"

Вы также можете установить предупреждение до вызова redirect_to:

flash[:error] = "Twitter's saying you're trying to post the same message twice"
redirect_to show_path
3 голосов
/ 02 января 2012

Да, я тоже был там :)

@ jsinger частично прав. Вам нужно передать символ вместо flash[] хеша. Но есть одна загвоздка: redirec_to поддерживает только два сокращенных символа: :notice и :alert. Есть третий, общий: :flash.

redirect_to show_path, :flash => { :success/:error/:whatever => "your flash message" }

Интересно, что за этим стоит.

APIdock

0 голосов
/ 02 января 2012

Вы пробовали?

flash.now [: note] = "некоторый текст"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...