Рассматривая Rails 3:
html_safe
на самом деле «устанавливает строку» в качестве HTML Safe (это немного сложнее, но это в основном так).Таким образом, вы можете возвращать строки HTML Safe от помощников или моделей по желанию.
h
можно использовать только из контроллера или представления, так как это от помощника.Это заставит выход быть экранированным.На самом деле это не рекомендуется, но вы, скорее всего, больше не будете его использовать: единственное использование - «отменить» объявление html_safe
, что довольно необычно.
Добавление выражения к raw
фактически эквивалентновызывая to_s
в цепочке с html_safe
на нем, но объявляется на помощнике, точно так же как h
, поэтому его можно использовать только на контроллерах и представлениях.
" SafeBuffers и Rails 3.0 "- хорошее объяснение того, как работает SafeBuffer
s (класс, который использует магию html_safe
).