как отобразить существующий XML-файл для пользователя в RoR - PullRequest
4 голосов
/ 04 декабря 2009

У меня есть XML-файл, и я хочу отобразить (отобразить) его , так как он для пользователя, т.е. я хочу сохранить теги. Как мне поступить в RoR?

Я пытался render :file=>"/path/to/file.xml", но тег <product> исчез.

//file.xml
<product>car</product>

Обновление: я обнаружил, что поведение зависит от браузера

  • Mozilla / 5.0 (X11; U; Linux i686; ru-ru; rv: 1.9.0.3) Gecko / 2008101315 Ubuntu / 8.10 (intrepid) Firefox / 3.0.3

    Теги сохранены.

  • Mozilla / 5.0 (Windows; U; Windows NT 5.1; zh-CN; rv: 1.9.0.15) Gecko / 2009101601 Firefox / 3.0.15

    Теги исчезли.

Ответы [ 4 ]

6 голосов
/ 04 декабря 2009

Вы пытались добавить

:content_type => 'application/xml'

к вашей линии рендеринга?

render :file=>"/path/to/file.xml", :content_type => 'application/xml'
3 голосов
/ 06 декабря 2009

Различные браузеры по-разному отображают XML. Некоторые пытаются быть умными , другие - нет. Вы не можете полагаться на это. Если вы хотите отобразить XML «как есть», вам нужно отобразить экранированный XML как текст.

В вашем действии контроллера вы должны будете вызвать это:

render :text => @template.h(File.read("/path/to/file.xml"))

Это избавит вас от всего HTML и будет действовать как обычный текст.

0 голосов
/ 30 мая 2012

или еще лучше

render :text => File.read("/path/to/file.xml"), :content_type => 'application/xml'
0 голосов
/ 04 декабря 2009

Добавить строку пролога xml в файл (в дополнение к предложению типа контента от jhwist).

<?xml version="1.0"?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...