main:Object的未定义方法`send_data'

时间:2012-12-11 10:39:12

标签: ruby-on-rails-3 amazon-s3 paperclip download

我正在尝试使用paperclip和aws-sdk gem下载存储的amazon s3存储桶数据。对象可公开访问。

我在我的控制器中有一个方法,我打算直接下载数据。

def method_where_downloading_happens
  code for finding url from params
  send_file "ModelName.attached_file.url"
end

#Tried both with static and dynamic url.

我收到以下错误

NoMethodError: undefined method `send_file for main:Object

但是,如果我使用: -

send_file open(ModelName.attached_file.url)

然后下载一个文件,但它的格式是二进制的,即windows无法识别file_type。

如果有人点击链接,请帮助我如何直接下载。

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

#In your environment.rb require 'open-uri'
require 'open-uri'

#As send_data will work in controller, so in your controller
def index
  data = open(params[:file])
  send_data data, :filename => params[:name], ...
end