Функция Rails возвращает символы HTML-имени вместо реального символа - PullRequest
1 голос
/ 26 ноября 2010

У меня есть функция:

def div
"<div>blah</div>"
end

и в представлении:

<%= div %>

но в результирующем источнике страницы:

&lt;div&gt;blah&lt;/div&gt;

вместо фактического строкового текста.

Однако консоль отображает правильные теги.

<% logger.info(div) %>

Выходы в консоли:

<div>blah</div>

Может кто-нибудь помочь?

Ответы [ 3 ]

3 голосов
/ 26 ноября 2010

В качестве альтернативы, если вы хотите использовать

<%= div %>

в своем представлении, вы можете определить свою функцию следующим образом, и она также будет работать:

3 голосов
/ 26 ноября 2010

Используйте это вместо.

<%= raw div %>

Rails 3 избегает всего, что исходит от сервера в представлениях, вы можете использовать raw, если уверены, что доверяете данным.

0 голосов
/ 26 ноября 2010

Да, в Rails 2 текст был необработанным по умолчанию, теперь в Rails 3 они делают наоборот

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