【问题标题】:Rails Paperclip and default_urlRails 回形针和 default_url
【发布时间】:2013-07-25 21:12:20
【问题描述】:

我正在尝试将 holder.js 库用于回形针默认图像。 Holder.js 创建 data-src 图像预览,当图像有 src="holder.js/#{width}x#{height}" 但无法创建正确的网址。 其实我有两个问题:

第一个问题,是获取缩略图style_name,用于获取样式大小。

其次,创建具有相对路径的图像 src(例如 holder.js/100x100)。 rails 为生成的 url 添加 /assets/。

【问题讨论】:

    标签: ruby-on-rails paperclip placeholder holder.js


    【解决方案1】:

    这是我的解决方案。

    在模型中定义 STYLES 常量。

    app/models/post.rb

    class Post < ActiveRecord::Base
      # ...
    
      STYLES = {
        large: '300x300#',
        medium: '250x250#',
        small: '100x100#',
        thumb: '50x50#',
        tiny: '20x20#'
      }
    
      has_attached_file :attachment, {
        styles: STYLES,
        default_url: '/assets/holder.js/:dimension',
        path: # your path
        url: # your url
      }
    
      # ...
    end
    

    比创建新的Paperclip interpolation

    config/initializers/paperclip.rb

    # returns value of the STYLES[:dimansion]
    # Post::STYLES[:tiny] -> '20x20'
    Paperclip.interpolates :dimension do |attachment, style|
      key = style.to_sym
      return Post::STYLES[key].gsub(/[^\d\w+]/, '') if Post::STYLES.has_key?(key)
      '900x500' # or return default :original dimensions
    end
    

    最后,在您看来:

    <%= image_tag nil, { data: { src: 'holder.js/200x200' } } %>
    

    <%= tag :img, { src: '', data: { src: 'holder.js/200x200' } } %>
    

    希望这会有所帮助。

    PS。最好用holder_railsgem

    更新:恐怕你必须使用

    default_url: '/assets/holder.js/:dimension'
    

    改为

    default_url: 'holder.js/:dimension'
    

    (出现路由错误)

    希望尽快解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 2012-11-17
      • 2015-11-14
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      相关资源
      最近更新 更多