這裏是我的解決方案。
定義樣式模型中的常數。
應用程序/模型/ 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'
(有路由錯誤)
希望儘快解決這個問題。