实现像Basecamp这样的上传控制器

时间:2009-11-18 07:19:07

标签: ruby-on-rails

想知道如何实现像Basecamp API这样的上传控制器,您可以在其中上传文件附件,接收包含该照片ID的XML响应,然后使用该响应在后续XML帖子中引用该文件以附加XML记录到文件附件...

2 个答案:

答案 0 :(得分:0)

基本上,您只需要一个管理上传文件的插件,例如PaperclipAttachment_fu。这些插件允许像数据库记录一样与文件交互,因此每个文件都会附加一个id。

然后确保控制器的respond_to块中有xml声明。

respond_to do |format|
  format.html
  format.xml { #return the id for the file }
end

答案 1 :(得分:0)

令人惊讶的是,显然没有任何文档可以在任何地方找到它。我最终绊倒了Basecamp网站上的一个文档,描述了他们的文件附件过程如何为API用户工作并将其用作指南。

http://developer.37signals.com/basecamp/

在本文的帮助下发布文件:

http://www.codevil.com/index.php/2009/05/23/posting-and-getting-files-in-rubyrails/

我修改了我的初始设置,以便不是在XML中传递标记,而是首先发布文件并接收文件ID作为响应。

然后他们发布带有该引用的XML及其。

然后我使用before_validation和after_save回调来使用Paperclip设置文件,并在保存后删除tmp文件。