Ruby on rails 使用回形针时,如何将图像位置更改为“a”:父项“模型id/:id”;文件夹格式?

Ruby on rails 使用回形针时,如何将图像位置更改为“a”:父项“模型id/:id”;文件夹格式?,ruby-on-rails,ruby-on-rails-plugins,paperclip,Ruby On Rails,Ruby On Rails Plugins,Paperclip,考虑到我有一个列表模型,其中有许多图像,每个图像都有一个附件,我如何使列表id成为文件夹结构的一部分 像这样:system/photos/[listing_id]/:id 我知道使用:id将输出图像记录的id 以下是我目前拥有的: class Image < ActiveRecord::Base belongs_to :listing #Rails ActiveRecord Relation. An image belongs to a post. # paperclip data h

考虑到我有一个列表模型,其中有许多图像,每个图像都有一个附件,我如何使列表id成为文件夹结构的一部分

像这样:system/photos/[listing_id]/:id

我知道使用:id将输出图像记录的id

以下是我目前拥有的:

class Image < ActiveRecord::Base
belongs_to :listing #Rails ActiveRecord Relation. An image belongs to a post. 

# paperclip data
has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :url => "/public/system/:class/:attachment/:id/:style_:filename"
类映像{:medium=>“300x300>”,:thumb=>“100x100>”},:url=>“/public/system/:class/:attachment/:id/:style.:filename”

结束

您需要传递url和路径属性。请查看此thoughtbot博客以获取帮助。您拥有它的方式很接近,但您需要传递列表id,而不是:id。

由于您的
图像
模型上有一个
属于
关系,您应该能够将
列表id
用作回形针配置的一部分:

has_attached_file :photo, 
    :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
    :url => "system/photos/:listing_id/:id"

啊,我终于明白了。我需要使用回形针。插入

有点解释了,但有点过时了

首先,创建一个config/initializers/paperclip.rb文件并添加以下内容:

Paperclip.interpolates :listing_id do |attachment, style|
  attachment.instance.listing_id # or whatever you've named your User's login/username/etc. attribute
end
这意味着现在在我的图像模型中,我可以参考:列表\u id,如下所示:

class Image < ActiveRecord::Base
    belongs_to :listing #Rails ActiveRecord Relation. An image belongs to a post. 

    # paperclip data
    has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
    :url => "/system/:attachment/:listing_id/:id/:style_:filename" #location where to output the server. :LISTING_ID is defined in config/initializers/paperclib.rb

end
类映像{:medium=>“300x300>”,:thumb=>“100x100>”,
:url=>“/system/:attachment/:listing_id/:id/:style_:filename”#输出服务器的位置:清单ID在config/initializers/paperclib.rb中定义
结束

PS:在initializers.rb中的更改生效之前,您需要重新启动服务器。

我已经尝试过了:url=>“/public/system/:attachment/:listing_id/:id/:style_:filename”输出此src=“/public/system/:listing_id/photos/17/medium_DSCN0704.jpg?1293542661