0

我正在与Adcourier 合作。他们向我发送了一个带有一些工作数据的 xml 提要,例如job_titlejob_description等等。

我想在我的应用程序中为他们提供一个 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来处理帖子。有没有人对此有任何想法?

4

1 回答 1

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 

接下来设置您的 routes.rb 以将该 URL 的帖子请求发送到正确的位置

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

请注意,我只是在这里编写了 xml 解析的东西,只需谷歌一下,找出解析您的请求的最佳解决方案/宝石。

于 2012-12-19T08:47:34.557 回答