2013-07-25 86 views
0

我試圖使用回形針默認圖像holder.js庫。 Holder.js創建數據的src圖像預覽,當圖像具有SRC =「holder.js /#{寬度}×{#}高度」 但不能創建正確的URL。 其實我有兩個問題:Rails的回形針和DEFAULT_URL

第一個問題,是一個get縮略圖STYLE_NAME,用於獲取樣式大小。

其次,創建與相對路徑圖片src(holder.js/100×100 - 例如)。 rails prepends/assets /生成的url。

回答

2

這裏是我的解決方案。

定義樣式模型中的常數。

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

配置/初始化/ 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寶石

UPDATE:怕你必須使用

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

代替

default_url: 'holder.js/:dimension' 

(有路由錯誤)

希望儘快解決這個問題。