簡體   English   中英

Rails Paperclip和default_url

[英]Rails Paperclip and default_url

我試圖將holder.js庫用於回形針默認圖像。 Holder.js創建data-src圖像預覽,當圖像有src =“holder.js /#{width} x#{height}”但無法創建正確的url。 其實我有兩個問題:

第一個問題是get get style_name,用於獲取樣式大小。

其次,使用相對路徑創建圖像src(例如holder.js / 100x100)。 rails prepends / assets /用於生成的url。

這是我的解決方案。

在模型中定義STYLES常量。

應用程序/模型/ 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插值

配置/初始化/ 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_rails gem

更新:害怕你必須使用

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

代替

default_url: 'holder.js/:dimension'

(得到路由錯誤)

希望盡快解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM