에서 내 routes.rb
이 설정 :사용자 정의 렌더링을 강제 실행하는 방법은 무엇입니까?
TvShowsController
에 :
xml.instruct!
xml.title "Test"
:
def dump
render :dump
end
을 그럼,이 콘텐츠와 함께 views/tv_shows
디렉토리에 dump.xml.builder
라는 이름의 파일을 추가 내가 curl http://server/xml/xyz
할 때 나는 이것을 얻는다 :
<?xml version="1.0" encoding="UTF-8"?>
<title>Testing</title>
그리고 레일 서버 출력은 다음과 같습니다 제가 XML을 얻기 위해 웹 브라우저를 사용할 때
Started GET "/dump/twd" for 127.0.0.1 at 2011-11-26 23:29:28 -0500
Processing by TvShowsController#dump as */*
Parameters: {"prefix"=>"twd"}
Rendered tv_shows/dump.xml.builder (0.1ms)
Completed 200 OK in 40ms (Views: 40.0ms | ActiveRecord: 0.0ms)
문제입니다; 그것은 말한다 : Missing template tv_shows/dump
및 레일 서버 출력은 다음과 같습니다
Started GET "/dump/twd" for 127.0.0.1 at 2011-11-26 23:29:21 -0500
Processing by TvShowsController#dump as HTML
Parameters: {"prefix"=>"twd"}
Completed 500 Internal Server Error in 5ms
ActionView::MissingTemplate (Missing template tv_shows/dump, application/dump with {:handlers=>[:erb, :builder, :coffee], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
* "/xxxxxx/ruby/pppp/app/views"
):
app/controllers/tv_shows_controller.rb:25:in `dump'
Rendered /xxxxx/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/missing_template.erb within rescues/layout (0.4ms)
지금까지 내가 아는 한, 내가 지금 왜 HTML로 렌더링하려고 않습니다 ... 항상 :dump
를 사용하여 뷰를 렌더링하기 위해 루비를 말하는 거죠?
나는 HTML에 응답하고 싶지 않다. 그래서 나는'respond_to'를 추가하지 않았다. 또한 URL에 어떤 확장명을 지정했는지에 관계없이 XML을 반환하려고합니다. 나는'/ dump/xyz'가 XML을 반환하기를 원한다. – Cristian
해결책이 있습니까? – DrewBaumann