Всплывающий текст подтверждения Rails не отображается, если текст приходит из переменной контроллера - PullRequest
0 голосов
/ 15 мая 2019

Во всплывающем окне подтверждения submit_tag в моем представлении Rails я пытаюсь использовать переменную экземпляра из моего контроллера Rails. В моем контроллере я определяю свою переменную как

@confirmation_msg = "test"

Затем в моем представлении .haml я пытаюсь вставить переменную в качестве текста запроса подтверждения внутри моего submit_tag.

= submit_tag "Increase Limits", { onclick: "return confirm(#{@confirmation_msg})", class: "btn btn-danger"}

Однако теперь мой запрос на подтверждение теперь отображается пустым, без текста. Кнопки отмены и ОК все еще там. Если я изменю "return confirm(#{@confirmation_msg})" на "return confirm('test')", я вижу "тест". Как получилось, когда я пытаюсь использовать переменную из моего контроллера, пусто?

1 Ответ

0 голосов
/ 15 мая 2019

Вы устанавливаете строку или что-то еще?

@confirmation_msg = test <--- is this a variable that holds a string or you mispelled "test"?

Если @confirmation_msg в конце является строкой, заключите ее в (одинарные или двойные) кавычки:

"return confirm('#{@confirmation_msg}')"

Рекомендуется также избегать содержимого, если у вас есть новые строки и / или специальные символы:

"return confirm('#{ j @confirmation_msg }')"

(метод j - это удобный псевдоним метода escape_javascript)

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