Использование HTML во флеш-сообщениях Rails - PullRequest
22 голосов
/ 29 октября 2010

Я использую flash [: error] для отображения простого сообщения пользователям, что они не могут выполнить операцию удаления при определенных условиях. У меня также есть ссылка, которая поможет им получить информацию о сущности, которую они хотели удалить, и почему они не могут это сделать.

Желательно ли включить эту гиперссылку во флэш-сообщение? Что означало бы, что у меня будет фрагмент HTML в моем контроллере. Если нет, то как бы я поступил так?

Ответы [ 3 ]

38 голосов
/ 18 августа 2011

Если вы хотите включить ссылку в ваше флеш-сообщение от контроллера, есть 2 проблемы. Генерация ссылки с последующим отображением ее в формате HTML.

Чтобы использовать помощника link_to в контроллере, полностью укажите его.

Чтобы строка отображалась в формате html (вместо экранирования), вызовите метод html_safe для строки. Таким образом, строка в вашем контроллере может выглядеть следующим образом:

flash[:error] = "You can't do that. #{ActionController::Base.helpers.link_to "Here's why.", '/more_info.html'}".html_safe
11 голосов
/ 29 октября 2010

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

пример:

redirect_to posts_path, :alert => "You cannot do that", :flash => { :url => post_path(@post) }

, а в представлении макета обычно подозревают:

- if flash[:alert]
  ...
  - if flash[:url]
    = link_to "blah blah", flash[:url]
0 голосов
/ 29 октября 2010

Можно. Вы также можете добавить помощника в свой контроллер.

Или вы можете сделать это по системе i18n.

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