0

我按照本指南学习了如何将文件上传到服务器上的安全目录,而不是公共目录(默认)。当我尝试去展会查看链接时,我得到:

undefined method `redocument' for #<ActionView::Helpers::FormBuilder:0xa2ae338>
near: <%= link_to File.basename(f.redocument.url), "/uploads/#{f.id}/#{File.basename(f.redocument.url)}" %> 

呈现链接时遇到问题。我在这里错过了什么吗?我不应该逐行复制此代码吗?他们没有指定我是否应该替换'redocument',但我的模型名称是Entry,并且存储文件链接的字符串是mv_link。任何人都知道修复是什么?

更新:希望方向正确

我将“f.redocument”的所有案例都更改为“@entry.mv_link”。现在在显示页面上,链接就在那里。但是,当我单击它并尝试下载时,控制器指定的路径已损坏。这就是控制器

def download
  path = "/#{redocument.redocument}"
  send_file path, :x_sendfile=>true
end

我应该将此路径更改为什么?

4

1 回答 1

2

好的,在这里勉强......但我认为你有这样的设置:

class Entry < ActiveRecord::Base
  mounts_uploader :mv_link, YourUploaderClass
end

在您的控制器中,您需要找到条目,然后从 mv_link 获取路径

def download
  @entry = Entry.find(params[:id])
  send_file @entry.mv_link.path, disposition: 'attachment', x_sendfile: true
end
于 2012-07-11T22:21:56.433 回答