无法在Rails 3中使用send_file函数读取文件

Moh*_*ain 7 ruby-on-rails sendfile ruby-on-rails-3

我正在使用的代码:

在视图文件中:

 <%= link_to "Download", download_image_path(image) %>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

def download
  @image = Image.find(params[:id])
  send_file "#{RAILS_ROOT}/public"  + @image.attachment.url
end
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Cannot read file /Users/mohit/projects/my_app/public/system/attachments/4/original/Screen Shot 2011-11-04 at 3.14.03 PM.png?1320582022
Run Code Online (Sandbox Code Playgroud)

PS:双重检查,文件存在.服务器上的相同问题,适用于所有相应控制器中的所有文件(图像,pdf,视频).

Moh*_*ain 16

问题是:

我在用

 @image = Image.find(params[:id])
 send_file "#{RAILS_ROOT}/public"  + @image.attachment.url
Run Code Online (Sandbox Code Playgroud)

它应该是

 @image = Image.find(params[:id])
 send_file  @image.attachment.path
Run Code Online (Sandbox Code Playgroud)

PS:确保验证图像/记录是否存在.