使用带有安全和非安全文件的回形针

时间:2009-12-16 14:53:45

标签: ruby-on-rails paperclip

首先,我们为不同类型的'Media'

设置了这个名称空间/ sti'd结构
Media< Ar::Base
Media::Local < Media
Media::Local::Image < Media::Local
Media::Local::Csv < Media::Local
等等......等等。

这是优秀的,因为用户可以拥有多种媒体,我们如何显示每一种媒体是基于类名和共同响应的部分。

但是,如果我们有一些需要安全的Csv呢?也就是说,他们不能居住在公众内部。我真的很讨厌再次分支Media并做这样的事情:

Media::Secure < Media
Media::Secure::Image < Media::Secure
Media::NotSecure < Media
Media::NotSecure::Image < Media::NotSecure

... Secure和NotSecure将不同的参数传递给has_attached_file。

现在有两个代表Image的类,它使我的视图/辅助系统变得更加复杂 - 更不用说它感觉非常迟钝了。

我真正想做的是能够更改某些Paperclip :: Attachment对象在保存之前保存的位置(例如通过foo_secure_action上传的任何内容) - 但我似乎无法使这项工作。 Paperclip :: Attachment有一个@options哈希:path和:url,但在保存之前更改它们对实际设置的位置没有影响。即使这是可能的,我也不确定它是否会产生进一步的后果......

我对构建这些数据的其他想法持开放态度,但目前我喜欢在这种情况下使用STI的想法。

1 个答案:

答案 0 :(得分:0)

我可以使用初始化程序中的Paperclip.interpolates来完成此操作。