我正在尝试使用部分渲染放置文件链接,如下所示:
#Main haml file
= render :partial => 'file_upload', :locals => {:f => f, :file_download => 'residence_cert'}
#Inside the partial
%a{:href => @postulant_info[file_download]}
但这只是与文件名建立链接,而不是文件的完整路径。然后意识到@postulant_info[file_download]
只给我一个带文件名的字符串,而不是载波对象
-logger.debug @postulant_info.residence_cert #this is returning my carrierwave object -> 'DocumentUploader'
-logger.debug @postulant_info['residence_cert'] #but this one is just returning a String, the DB record with the file name
可以将一个解决方案放在渲染中作为像= render :partial => 'file_upload', :locals => {:f => f, :file_download => 'residence_cert', :url => @postulant_info.residence_cert.url}
这样的本地,但我认为当部分模板中有属性名称时,“应该”是不必要的。
任何想法将不胜感激。提前致谢
答案 0 :(得分:0)
我非常不确定你的问题究竟是什么,以及你想要实现的目标,但如果你想输出一个文件的链接,那么在你的部分
%a{:href => @postulant_info.residence_cert.url}
就够了。 @postulant_info.residence_cert
会为您提供上传者的实例(DocumentUploader
),#url
方法会返回上传文件的完整网址
顺便说一下,你应该避免在你的部分中使用实例变量,部分应该使用的唯一变量是它已被赋予。
答案 1 :(得分:0)
最后我可以通过以下方式实现:
%a{:href => @postulant_info.send(file_download)}