Ruby on rails 3.1 是否可以使用carrierwave创建动态存储路径?

Ruby on rails 3.1 是否可以使用carrierwave创建动态存储路径?,ruby-on-rails-3.1,devise,carrierwave,Ruby On Rails 3.1,Devise,Carrierwave,我从文件上传开始,到目前为止,我对它非常满意。我的文件存储在AmazonS3上,它相当简单,工作可靠 现在我有了一个名为pictures的模型和一个名为main uploader的上传器。我需要一个特殊的动态路径来保存这些文件时上传 我也在使用Desive,我可以从我的视图和控制器访问当前用户,但不能从carrierwave上传器访问。我需要文件的路径类似于 uploads/#{current_user.location}/#{current_user.first_name}/images 但我

我从文件上传开始,到目前为止,我对它非常满意。我的文件存储在AmazonS3上,它相当简单,工作可靠

现在我有了一个名为
pictures
的模型和一个名为
main uploader
的上传器。我需要一个特殊的动态路径来保存这些文件时上传

我也在使用Desive,我可以从我的视图和控制器访问
当前用户
,但不能从carrierwave上传器访问。我需要文件的路径类似于

uploads/#{current_user.location}/#{current_user.first_name}/images

但我无法从上传程序访问当前的_用户,也没有看到任何替代方案。carrierwave是否可以使用这种类型的动态路径(无需重新写入大量此gem)

非常感谢您的指点。
谢谢你的帮助。

以防万一,这里有人通过谷歌搜索或其他什么东西想知道

我最后做的是在我的模型(
图片
)上创建一个属于用户模型的关系。然后从carrierwave上传器中,我可以做
model.user.first\u name
,这相当于
picture.user.first\u name
。所以我可以将model.user放在我的路径中,并以这种方式访问任何用户属性。希望这对其他人有帮助

比如:

def store_dir
    "#{model.user.first_name}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.title}"
end
ps 注意,我还使用了
model.title
,这是因为我希望picture.title也位于路径中。但这不是最佳实践。如果执行此操作,请确保在生产环境中解析model.title,以便它为您提供有效的文件夹名称/url