activerecord to_xml обновить версию xml до 1.1 - PullRequest
0 голосов
/ 23 июля 2011

to_xml to activerecord включает объявление xml следующим образом.

<?xml version="1.0" encoding="UTF-8"?>

Как изменить версию на 1.1, а также изменить кодировку?

Мы можем использовать to_xml(:skip_instruct => true), чтобы полностью скрыть объявление.

1 Ответ

1 голос
/ 23 июля 2011

Если вы используете маршруты restfull, то посещение some_url.xml даст вам результаты, как вы описали.Если вы работаете с XML таким образом, вы можете определить свой собственный шаблон XML-компоновщика.Он будет работать точно так же, как работает представление. Вот пример

действие вашего контроллера

  def show
    @obj = SomeClass.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :layout => false }
    end
  end

Затем в папке представлений, где вы обычно размещаете show.html.erbсоздайте файл show.xml.builder, содержимое которого будет выглядеть примерно так

xml.someclass do
  xml.id(@obj.id)
  xml.name(@obj.name)
end

. В этом шаблоне вы можете добавить <?xml version="1.1" encoding="UTF-8"?> или любые другие объявления xml, которые вы хотите добавить

ОБНОВЛЕНИЕ Вам не нужно обслуживать представления, только маршрут RESTfull, контроллер и действие, у которого есть response_to, отвечающий на формат XML.Rails обнаружит, что вы хотите визуализировать xml, и будет искать файл .xml.erb в папке представлений, названной в честь действия, точно так же, как работают представления

...