Ruby on rails 轨道&x2B;蜻蜓宝石:基于ActiveRecord对象属性在目录结构中保存图像

Ruby on rails 轨道&x2B;蜻蜓宝石:基于ActiveRecord对象属性在目录结构中保存图像,ruby-on-rails,ruby,image,paperclip,dragonfly-gem,Ruby On Rails,Ruby,Image,Paperclip,Dragonfly Gem,我正在使用来管理rails应用程序中的图像和附件,我需要根据我的数据库将图像存储在特定的目录结构中 用户模型。 假设我有一个用户模型,它有一个名字,每个用户都有很多 相册,也有一个名字,然后我希望图像被存储 在“#{RAILS_ROOT}/public/system/#{user.name}/#{user.album.name}/#{suffix}”中 我成功地改变了《龙飞》中的根路径,我甚至 覆盖的相对存储路径如下所示: class MyDataStore < Dragonfly::Da

我正在使用来管理rails应用程序中的图像和附件,我需要根据我的数据库将图像存储在特定的目录结构中 用户模型。 假设我有一个用户模型,它有一个名字,每个用户都有很多 相册,也有一个名字,然后我希望图像被存储 在
“#{RAILS_ROOT}/public/system/#{user.name}/#{user.album.name}/#{suffix}”中

我成功地改变了《龙飞》中的根路径,我甚至 覆盖的相对存储路径如下所示:

class MyDataStore < Dragonfly::DataStorage::FileDataStore
  private
   def relative_storage_path(suffix)
    "#{suffix}"
   end
end
class MyDataStore
但是,我仍然不知道如何传递ActiveRecord对象 像
user.name
user.album.name
相对存储路径的属性
创造我理想的道路


你知道我怎么能做这样的事吗

《创业板》的作者马克·埃文斯帮了我一个忙,在谷歌集团上回答了这个问题。以下是他的回答,对我的案例非常有效:

你好

您不能开箱即用,因为数据存储是 故意设计得非常简单-你传入数据,它会 你回了一个uid,等等

如果你想这样做,你就必须使用猴子补丁附件#保存!喜欢 因此:

上面我唯一更改的是datastore.store需要两个 现在开始

然后您必须修改/monkey补丁 蜻蜓::数据存储::文件数据存储#要考虑 第二个arg

出于兴趣,为什么要将图像存储在其中 格式

干杯
马克

创业板作者马克·埃文斯帮了我一个忙,在谷歌集团上回答了这个问题。以下是他的回答,对我的案例非常有效:

你好

您不能开箱即用,因为数据存储是 故意设计得非常简单-你传入数据,它会 你回了一个uid,等等

如果你想这样做,你就必须使用猴子补丁附件#保存!喜欢 因此:

上面我唯一更改的是datastore.store需要两个 现在开始

然后您必须修改/monkey补丁 蜻蜓::数据存储::文件数据存储#要考虑 第二个arg

出于兴趣,为什么要将图像存储在其中 格式

干杯
Mark

不再需要上述答案的精确副本,因为蜻蜓现在支持自定义存储路径:@MarkEvans该链接现在已断开:(@MarkEvans我也有同样的问题,但我们没有模型。我们将图像保存为“dragonfly[:images].store(data)”。是否可以将这些文件存储在不同的特定文件夹中?我将完整的问题描述放在这里:上面的答案不再需要,因为蜻蜓现在支持自定义存储路径:@MarkEvans该链接现在已断开:(@MarkEvans我也有同样的问题,但我们没有模型。我们将图像保存为“蜻蜓[:图像].store(data)”。是否可以将这些文件存储在不同的特定文件夹中?我已将完整的问题描述放在这里:
class Dragonfly::ActiveRecordExtensions::Attachment
  def save!
    destroy! if uid_changed?
    self.uid = app.datastore.store(temp_object, parent_model) if has_data_to_store?
  end
end