我有一个上传者(carrierewave)来保存几个文件,但我担心有些日子,某些文件会有相同的名称并会导致问题。此外,我希望这些文件夹保持一种组织形式。
所以,我有一个第一个脚手架,“杂志”,它允许我创建一个带有标题和几个图像的杂志。我使用的第二个脚手架“page”允许多上传系统。
使用这种方法,我的模型如下所示:
magazine.rb
has_many :pages, :inverse_of => :magazine, :dependent => :destroy
pages.rb
belongs_to :magazine
现在在我的上传器中,我有以下内容:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}"
end
创建这样的文件夹:“uploads / page / image”,然后上传其中的每个图像,甚至认为是否是其他杂志,所以图像混淆了。
我的问题如下:有没有办法来编写杂志的ID?这意味着要找到类“页面”所属,但我没有找到任何回答谷歌上的问题。
提前谢谢
答案 0 :(得分:2)
如果您在模型Page
中安装了自定义上传器,则可以正常访问模型属性
<强> PageImageUploader.rb 强>
def store_dir
"uploads/magazines/#{model.magazine.id}/#{model.id}"
end
但是,除非您的模型是持久的,否则您无法访问模型ID。可以找到here的解决方法。