Rail 3 - флеш-сообщения сбежали, лучший способ убежать - PullRequest
8 голосов
/ 22 сентября 2010

Теперь, когда Rails 3 экранирует все оцениваемые элементы в представлениях (хорошо), но он также избегает моего флеш-сообщения.И мне нравится случайная ссылка в моем флеш-сообщении (или сильном или выделенном).

Флэш-сообщение:

flash[:notice] = "<strong>Bob</strong> was sucessfully checked in.<br />If you made a mistake, you can <a href=\"/scouts/#{@scout.id}/check_out\">check out Bob</a> to undo."

Становится искаженным, сбежавшим, непригодным для использования.

Iможно удалить сообщение, используя raw:

- flash.each do |name, msg|
  = content_tag :div, raw(msg)

Но теперь каждое флэш-сообщение не экранировано.

Как я могу удалить только одно флэш-сообщение?или только части сообщения?

1 Ответ

11 голосов
/ 22 сентября 2010

попробуйте html_safe в вашем контроллере для каждого уведомления, которое вы хотите экранировать. Это позволит вам удалить необработанную функцию из представления и удалить только те, которые вы хотите в контроллере.

flash[:notice] = "test<br/>test".html_safe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...