如何使Paperclip的附件路径值不可变?

时间:2011-01-10 17:35:26

标签: ruby-on-rails path paperclip immutability

Rails插件Paperclip在每次请求路径时根据一些动态的用户定义规则插入附件路径。这允许您输入名称/ ID /等。进入附件的路径。

但是,我有两种原始路径依赖关系可以改变的情况,当它们发生时,我再也找不到附件了,因为插值路径现在指向错误的位置。

我需要对路径进行一次插值,当文件被保存时,无论插值依赖性如何变化,该路径都会保留并返回到那里。

2 个答案:

答案 0 :(得分:0)

我的一位同事提出了一个很好的解决方案。它没有无缝地集成到回形针中,但它是有效的。要点是:

  1. 在模型上使用“before_create”过滤器,以获取可能更改的路径中使用的所有值的快照

  2. 从回形针路径插值引用那些快照值(而不是实际来源,可能会改变)

  3. 所以你的路径定义看起来像这样:

    :path => '.../:snapshotted_name/...'
    

    代码看起来像这样:

    before_create :snapshot_names # only set once
    
    private
    
    def snapshot_names
      snapshotted_name = customer.name
    end
    

答案 1 :(得分:-1)

我发现了问题。

  

我有两种原始路径依赖关系可以改变的情况

为什么会改变?这两种情况是什么?什么阻止你提出一个永远不会改变的计划?