代码之家  ›  专栏  ›  技术社区  ›  Jan

我该如何为回形针附件创建一个作用域url?

  •  0
  • Jan  · 技术社区  · 14 年前

    我有这个(这些)型号

    Portfolio
    -- PortfolioItem item
      -- Image image
         has_attachment :attachment
    

    所有的都是漂亮的slugs,我希望:attachment的url反映这个组织,比如一个实例

    photos/holiday_in_venice/ponte_vecchio (all slugs of the respective hierarchy)
    

    将生成此url

    photos(??)/holiday_in_venice(??)/:slug/:style.:extension
    

    在创建回形针路径/url期间,我将如何访问这些先行对象?

    目前我只能做

    ponte_vecchio/small.png
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Wukerplank    14 年前

    您需要创建 custom interpolations 。之后,您可以定义 :url 和 :path 。

    放入一个名为 paperclip.rb 在您的 config/initializers/ 文件夹,然后执行以下操作:

    Paperclip.interpolates :portfolio_slug do |attachment, style|
      attachment.instance.portfolio_item.portfolio.title.parameterize
    end
    
    Paperclip.interpolates :portfolio_slug do |attachment, style|
      attachment.instance.portfolio_item.title.parameterize
    end
    

    之后,您可以像这样使用这些插值:

    has_attached_file :attachment, 
      :path=>":rails_root/public/photos/:portfolio_slug/:item_slug/:style.:extension",
      :url=>"/photos/:portfolio_slug/:item_slug/:style.:extension"