Tôi có hình mờ, phòng trưng bày và mô hình ảnh.Làm thế nào để vượt qua một con đường watermark biến đến một bộ xử lý watermark kẹp giấy?
Gallery belongs_to
Watermark Ảnh belongs_to
Gallery
class Photo < ActiveRecord::Base
before_save :save_dimensions, :set_orientation
belongs_to :gallery
has_attached_file :image,
:processors => [:watermark],
:styles => {
:thumbnail => ["80x80>"],
:small => {
:geometry => "200x200>",
:watermark_path => "#{gallery.watermark.image.path(:small)}",
:position => "Center"
},
:medium => {
:geometry => "400x400>",
:watermark_path => "#{gallery.watermark.image.path(:medium)}",
:position => "Center"
},
:large => {
:geometry => "600x600>",
:watermark_path => "#{gallery.watermark.image.path(:large)}",
:position => "Center"
}
},
:path => ":rails_root/public/images/galleries/:gallery_id/:id/:style_:basename.:extension",
:url => "galleries/:gallery_id/:id/:style_:basename.:extension"
validates_attachment_presence :image
validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png']
attr_protected :image_file_name, :image_content_type, :image_file_size
end
Với điều này tôi nhận được undefined local variable or method 'gallery'
. Nếu tôi cố gắng như thế này với :gallery_watermark_path
được xác định bằng cách sử dụng Paperclip.interpolations nó âm thầm không thành công.
:watermark_path => ":gallery_watermark_path"
Các :gallery_watermark_path
không được xử lý bởi Paperclip.interpolations:
development.log:
[paperclip] identify -format %wx%h '/tmp/stream20110620-30644-1j6i9in.jpg[0]' 2>/dev/null
[paperclip] convert '/tmp/stream20110620-30644-1j6i9in.jpg' '-resize' '80x80>' '-auto-orient' '/tmp/stream20110620-30644-1j6i9in20110620-30644-1mcqvox' 2>/dev/null
[paperclip] identify -format %wx%h '/tmp/stream20110620-30644-1j6i9in.jpg[0]' 2>/dev/null
[paperclip] convert '/tmp/stream20110620-30644-1j6i9in.jpg' '-resize' '200x200>' '-auto-orient' '/tmp/stream20110620-30644-1j6i9in20110620-30644-60zlb' 2>/dev/null
[paperclip] composite '-gravity' 'Center' ':gallery_watermark_path' '/tmp/stream20110620-30644-1j6i9in20110620-30644-60zlb' '/tmp/stream20110620-30644-1j6i9in20110620-30644-60zlb' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::PaperclipError: There was an error processing the watermark for stream20110620-30644-1j6i9in>
[paperclip] identify -format %wx%h '/tmp/stream20110620-30644-1j6i9in.jpg[0]' 2>/dev/null
[paperclip] convert '/tmp/stream20110620-30644-1j6i9in.jpg' '-resize' '400x400>' '-auto-orient' '/tmp/stream20110620-30644-1j6i9in20110620-30644-1ronidq' 2>/dev/null
[paperclip] identify -format %wx%h '/tmp/stream20110620-30644-1j6i9in.jpg[0]' 2>/dev/null
[paperclip] convert '/tmp/stream20110620-30644-1j6i9in.jpg' '-resize' '600x600>' '-auto-orient' '/tmp/stream20110620-30644-1j6i9in20110620-30644-1ikfy72' 2>/dev/null
Nói tóm lại, làm thế nào để tôi vượt qua những biến watermark vào bộ vi xử lý?
Đã xác nhận, các thuộc tính như ('gallery_id'), không được gán để tệp đính kèm.instance.gallery xuất hiện dưới dạng nil. – cevaris