я пытаюсь понять, как отправить значение модели в пользовательский процессор Paperclip, и просто не могу понять, почему это так сложно или какое может быть решение, так как я пытаюсь решить это уже несколько дней ... Вот мой код, извлеченный как из моей модели, так и из процессора.
Из моей модели:
...
has_attached_file :receipt_file,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:style/:id/:filename",
:s3_protocol => "https",
:styles => { :text => { style: :original, receipt_id: self.id }},
processors: [:LearnProcessor]
...
Почему я не могу использовать "self.id" для получения идентификатора квитанции? Как получается, что "/:style/:id/:filename"
преобразуется во что-то вроде /original/1/abc.pdf
, и если я поставлю receipt_id: :id
, все, что я получу из options[:receipt_id]
(см. ниже), будет :id
вместо 1
?
Нужна ли мне какая-то интерполяция?
Код процессора
module Paperclip
class LearnProcessor < Processor
attr_accessor :receipt_id,:style
def initialize(file, options = {}, attachment = nil)
@file = file
@current_format = File.extname(@file.path)
@basename = File.basename(@file.path, @current_format)
@style = options[:style]
@receipt_id = options[:receipt_id]
puts "Options #{options.inspect}"
end
...
original//filename.pdf
- person MrWater   schedule 04.09.2012