2012-12-18 2 views
0

Adcourier으로 일부 작업을하고 있습니다. 그들은 어떤 직업 데이터 (예 : job_title, job_description)와 함께 XML 피드를 보냅니다.XML 피드를 Rails 객체

신청서에 URL (예 : myapp:3000/job/inbox)을 제공하고 싶습니다. URL에 피드를 보내면 데이터를 가져 와서 이미 만든 Job 개체의 데이터베이스에 저장합니다.

  1. 구조를 구성하는 가장 좋은 방법은 무엇입니까? 나는 MVC에 대해 아주 익숙하다.

  2. XML 피드를 외부 소스에서 해석하는 작업을 어떻게 얻을 수 있습니까? Nokogiri를 사용하여 로컬 XMl 문서를 처리하지만 피드의 문서는 절대 사용하지 않습니다.

게시물을 처리하는 데있어 http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-raw_post을 사용하려고 생각했습니다. 이걸 누구 한테 던지면 어떤 생각이 드나요?

+0

일반적인 피드 (예 : Atom 또는 RSS) 인 경우 요청합니다. 피드는 실제로 푸시되지 않습니다. –

+0

Adcourier 페이지에서 언급했듯이 피드는 끝에서 보내거나 전송됩니다. _ 데이터가 HTTP POST_ –

답변

1

작업 컨트롤러에서 게시 요청에서 올바른 매개 변수를 가져온 작업 수신함을 추가하고 저장합니다 (또는 사용자가 필요로하는 모든 작업).

def inbox 
    data = Xml::ParseStuff(params[:data]) 
    title = data[:title] 
    description = data[:description] 
    if Job.create(:title => title, :description => description) 
    render :string => "Thanks!" 
    else 
    render :string => "Data was not valid :(" 
    end 
end 

다음은 알아 조금 구글,

resources :jobs do 
    collection do 
    post 'inbox' 
    end 
end 

참고 난 그냥 여기에 XML을 구문 분석 물건을 만들어 않았다 올바른 위치에 해당 URL에 대한 게시물 요청을 보내도록 routes.rb 설정 귀하의 요청을 분석하기위한 최고의 솔루션/보석이 무엇입니까?

+1

을 통해 제 3 자 인터페이스로 전송됩니다. Vikko는 구조를 명확하게 설명하는 데 도움을주었습니다. 그리고 네, XML 자료를 연구하게되어 기쁩니다. 그것은 request.raw_post()가 데이터를 열 것이며 Nokogiri가 나를 파싱하게 할 것입니다. 그래서 모든 것이 그 것처럼 보입니다. 도움을 주셔서 감사합니다. –

+0

예,'data = Nokogiri :: XML (request.body.read)'를 사용할 수 있습니다. – Vikko