2011-07-01 5 views
0

Так что я сохраняю весь код вставки из youtube в мою базу данных, а затем выводя его так.Rails 3 рендеринг iframe с raw()

<%= raw(people.video) %> 

, который выводит общее IFrame тег скопированный с YouTube:

<iframe src="foo" width=400 height=380></iframe> 

проблема заключается в том, что он на самом деле показывает, что тег вместо того, чтобы встроить видео в саму страницу. Я могу обойти это, просто сохранив src в базе данных .... но это часть системы mini cms, и администраторы сайта могли бы намного проще копировать и прокручивать код встраивания с youtube. Есть ли какой-то способ указать iframe для фактического рендеринга вместо простого выделения html на странице?

ответ

0

Вы можете использовать метод raw для визуализации HTML строки, вы храните его таким образом? Вы также можете попробовать RedCloth камня - я был в состоянии получить эту работу, как так:

<%= raw RedCloth.new(@page_content.content).to_html %> 

что позволило моему обычаю CMS для использования в текстильной разметке http://en.wikipedia.org/wiki/Textile_%28markup_language%29

Я не 100% от того, что вы видите, так как raw должен отображать HTML, но вы также можете попытаться включить тег embed с помощью JavaScript.write, так как есть некоторые проблемы, связанные с объектами Flash, встроенными в HTML и JavaScript.

Дайте мне знать, если это не сработает, и если да, можете ли вы предоставить скриншоты или скопировать то, что вы видите на странице?

+0

Спасибо. Я буду отмечать ваш ответ как правильный. Оказывается, что мой jQuery CMS-плагин был html, дезинфицирующим открытые теги на iframe. Это, как говорится, я думаю, что я загляну в красное платье :) – Msencenb