Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Что относительно
headers["Content-Type"] = "text/xml"
? Надежда, которая помогает.
На самом деле существует два способа установить тип контента (я думаю, что это - то, что Вы подразумеваете под типом пантомимы). Необходимо использовать вторую опцию, если она работает на версию направляющих.
class FileController < ApplicationController
def index
filename = 'some.xml'
extname = File.extname(filename)[1..-1]
mime_type = Mime::Type.lookup_by_extension(extname)
content_type = mime_type.to_s unless mime_type.nil?
# 1
#headers['Content-Type'] = content_type
#render :file => filename
# 2
render :file => filename, :content_type => content_type
end
end
Hope это помогает!
Смотрите здесь . В основном необходимо использовать рендеринг: xml => вздор to_xml
render :file => @somedir + "/blah.xml", :content_type => Mime::XML