Yur*_*uri 3 devise carrierwave ruby-on-rails-3.1
我开始使用carrierwave进行文件上传,到目前为止我对它非常满意.我的文件存储在amazon s3上,这非常简单,而且工作可靠.
现在我有一个名为的模型pictures和一个上传者名称MainUploader.我需要一个特殊的动态路径来保存上传时的文件.
我也在使用设计,我current_user可以从我的视图和控制器访问,但不能从载波上传器访问.我需要文件的路径
uploads/#{current_user.location}/#{current_user.first_name}/images
但我无法从上传者访问current_user,也没有看到任何替代方案.这种类型的动态路径是否可以使用carrierwave(不重写大量的这个宝石)?
任何指针都非常感谢.谢谢您的帮助.
以防万一其他人从谷歌搜索或其他东西想知道这里.
我最终做的是在我的model(pictures)上创建一个到User模型的belongs_to关系.然后从载波上传器我可以做到model.user.first_name相当于picture.user.first_name.所以我可以将model.user放在我的路径中,并以这种方式访问任何用户属性.希望这有助于其他人.
就像是:
def store_dir
"#{model.user.first_name}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.title}"
end
Run Code Online (Sandbox Code Playgroud)
ps注意我也使用model.title它是因为我希望picture.title也在路径中.虽然不是最好的做法.如果这样做,请确保在生产中解析model.title,以便它为您提供有效的文件夹名称/ URL.
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |