Ruby on rails 轨道&x2B;蜻蜓宝石:基于ActiveRecord对象属性在目录结构中保存图像
我正在使用来管理rails应用程序中的图像和附件,我需要根据我的数据库将图像存储在特定的目录结构中 用户模型。 假设我有一个用户模型,它有一个名字,每个用户都有很多 相册,也有一个名字,然后我希望图像被存储 在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_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