[英]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.