RHTML для строки - рельсы - PullRequest
       17

RHTML для строки - рельсы

0 голосов
/ 11 августа 2010

В моем приложении rails мои модели имеют метод to_html. Этот метод вызывается в одном из представлений, поэтому атрибуты модели могут отображаться правильно независимо от их классов (потому что все мои классы реализуют этот метод)

Это изящное решение, но меня беспокоит одна вещь. Мне нужно написать этот HTML-код внутри двойных кавычек (в виде строк) и в конечном итоге избежать других двойных кавычек, которые я использую в своем HTML-код вручную.

Я бы хотел иметь возможность работать с файлами rhtml: читать их, оценивать возможный рубиновый код и возвращать результат в виде строки с необходимыми экранированными символами. Я приведу вам пример:

Следующий код:

<label for="blabla"> <%= ruby_variable.name %> </label>

когда обработано должно вернуть мне:

"<label for=\"blabla\"> name </label>"

Кто-нибудь знает что-то, что уже делает это, или может указать мне правильное направление? Я думал написать кусок кода, который делает это сам. Но если что-то уже работает, я бы с радостью использовал это.

Спасибо

1 Ответ

0 голосов
/ 11 августа 2010

Вы можете использовать ERB прямо за пределами ваших просмотров, если хотите.Например:

require 'erb'
v = 'testing123'
output = ERB.new('<label><%= v %></label>').result(binding)

вернет

<label>testing123</label>

Тем не менее, я не совсем уверен, зачем вам нужен метод to_html в ваших классах модели, поскольку он разрывает разделение междумодель, вид и контроллер, которые так приятно предоставляет Rails.Я оставлю это тебе!

...