Rails 3 экранирует нежелательный html

Я конвертирую свое толстое приложение Rails2 для работы на Rails3. После долгой напряженной борьбы с армией жуков и криками моих боссов вся страница отображается как экранированная строка html. Таким образом, все элементы div, изображения и т. д. написаны буквально для пользователя.

По какой-то причине этот частичный вызов отображает экранированную строку

<%= render :partial => 'something_really_interesting' %>

Как и все приложения Ruby on Rails, эта инструкция называется не очень! Итак, как мне обрабатывать все эти вызовы, чтобы они не отображались нормально, а не как экранированная строка?


person wael34218    schedule 03.11.2010    source источник


Ответы (1)


Используйте <%= raw bla %> внутри частичного файла.

Rails 3 автоматически делает все безопасным. Вам нужно поставить raw, чтобы избежать поведения. Это также означает, что вам больше не нужно использовать метод h(), чтобы сделать вашу строку безопасной.

person TK.    schedule 03.11.2010
comment
Это помогло мне, спасибо. В моем случае я визуализирую партиал непосредственно из другого шаблона, а также из помощника, который вызывается другим шаблоном. Кроме того, мой частичный - это форма, поэтому я не хотел вызывать raw для каждого вывода строки. Оно работает! - person Docunext; 26.03.2011