加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 当自定义插值更改时,强制回形针重命名文件

发布时间:2020-12-17 02:14:24 所属栏目:百科 来源:网络整理
导读:我使用Paperclip来管理Rails 3中某个Model的上传图像.这个模型属于另一个模型.我希望我的图像路径能够反映这种关系,所以我为此创建了一个自定义插值. 问题是,我还希望能够编辑belongs_to对象的名称,我希望Paperclip相应地重命名文件. 这是一个简单的例子: c
我使用Paperclip来管理Rails 3中某个Model的上传图像.这个模型属于另一个模型.我希望我的图像路径能够反映这种关系,所以我为此创建了一个自定义插值.

问题是,我还希望能够编辑belongs_to对象的名称,我希望Paperclip相应地重命名文件.

这是一个简单的例子:

class Make < ActiveRecord:Base
  attr_accessible :name

  has_many :models
end

class Model < ActiveRecord:Base
  attr_accessible :img,:make,:name

  belongs_to :make
  has_attached_file :img,:style => { :thumb => "100x100" },:path => "/cars/:make_name/:name/:style/:hash.png",:hash_secret => "blabla"

  Paperclip.interpolates :make_name do |attachment,style|
    attachment.instance.make.name
  end

  Paperclip.interpolates :name do |attachment,style|
    attachment.instance.name
  end
end

所以,假设我创建了一个制作雪佛兰和模型Camaro,我的图像路径将是/cars/chevrolet/camaro/thumb/my_hash.png

如果我决定将雪佛兰条目名称更改为雪佛兰,Rails会尝试在/cars/chevy/camaro/thumb/my_hash.png找到图像,但由于图像未重命名,因此无法找到.

重命名条目时,如何强制Paperclip更新所有图像路径?

谢谢!

解决方法

更健壮的文件路径可以使用make id而不是make name.即,更改make名称时/cars/:make_id/:name/:style/:hash.png将继续有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读