2009-12-02 2 views
1

누군가가 Builder를 사용하여 SQL 데이터베이스에서 여러 XML 파일을 만들 수있는 예를 제공 할 수 있습니까? 나는 쉽게데이터베이스를 기반으로 여러 XML 파일 생성

def index 
    respond_to do |format| 
    format.xml { @rides = Rides.find(:all) } 
    end 
end 

이는 index.xml.builder 다음 코드가 포함 된 I를 호출하여 만든 파일이 Index.xml라는 기반으로 파일을 만들 것입니다 ... 하나 여기에서와 같이 전체 데이터베이스를 포함를 만들 수 있습니다

여기
xml.instruct! 
xml.rides do 
@rides.each do |ride| 
    xml.item("togive" => ride.togive, "totake" => ride.totake, "howlong" => ride.howlong,  "isoffer" => ride.isoffer, "id" => ride.id, "contact" => ride.contact) 
end 
end 

내 routes.rb

map.resources :rides 
map.connect ':controller/:action/:id' 
map.connect ':controller/:action/:id.:format' 

이 잘 작동의 유일한 라인입니다,하지만 어떻게 내가 놀이기구에서 마지막 요소를 포함하는 새 파일을 만들 것인가?

감사

편집 : 나는 당신이 달성하려고하는지 전혀 모르겠어요,하지만 당신은을 반환 컨트롤러에서 다른 방법을 가질 수

답변

1

을 format.xml하는 format.rss 변경 지난 타고 :

def last 
    respond_to do |format| 
    format.xml { @last_ride = Rides.last } 
    end 
end 

그리고 다음과 같이 할 수 last.xml.builder 뷰 템플릿 :

xml.instruct! 
xml.rides do 
    xml.item("togive" => @last_ride.togive, "totake" => @last_ride.totake etc...) 
end 
을 이 접근 방식을 갔다 경우

다음은 list 조치에 대해 새로운 collection route을 추가 할 config/routes.rb 파일을 수정해야 할 것 :

map.resources :rides, :collection => { :last => :get } 
  • 이 다음 사용 경로에 액세스 할 수 있도록 할 http://localhost:3000/rides/last.xml
  • 이 모든 놀이기구 또는 appropria로 마지막 탐을 가져옵니다 있도록

은 또는 당신은 단순히 컨트롤러의 index 방법 내에서 find 호출 조건 만들 수 테. 이 경우 기존의 index.xml.builder보기 템플리트를 재사용 할 수 있어야합니다. 단지 하나의 타기 만 포함하는 컬렉션을 출력하기 때문입니다.

+0

예이 작업은 수행하려는 작업입니다. 그것은 작동해야하지만, 결코 그것을위한 경로를 찾을 수 없습니다. 그래서 이것은 http : // something : 3000/latest 또는 http : // something : 3000/rides/latest에서 웹을 통해 접근 가능할 것입니다. ?? –

+0

'config/routes.rb' 파일의 모양에 따라 다릅니다. 질문 내용을 편집하여 포함시킬 수 있습니까? –

+0

컨트롤러의 최신 메소드를 인식하기 위해 routes.rb에 다른 라인을 추가해야 할 필요가 있습니다. –

관련 문제