рельсы 3 рендеринга xml независимо от request.format - PullRequest
4 голосов
/ 14 января 2011

Я пытаюсь создать API, и мне нужно вернуть XML независимо от формата запроса. Теперь у меня есть следующее в моем контроллере

def index  
   @posts = Post.all  
   respond_to do |format|  
      format.xml  
   end  
end  

У меня есть index.xml.builder

'/ posts.xml' работает для меня, но не '/ posts'

я попробовал request.format =: xml, который дал мне SystemStackError (слишком большой уровень стека) :. почему это происходит

Как заставить контроллер отображать XML для всех типов запросов? так что мне не нужно указывать формат в URL, который выглядит чистым и опрятным?

Ответы [ 2 ]

2 голосов
/ 14 января 2011
def index
  @posts = Post.all
  respond_to do |format|
    format.any do
      render :xml => @posts.to_xml
    end
  end
end
0 голосов
/ 06 декабря 2012

Мне понравилось, так как у меня было собственное представление xml для рендеринга:

def index
  respond_to do |format|
    format.any do
       headers["Content-Type"] = "application/xml; charset=utf-8"
       render "index.xml"
    end
  end
end
...