Я настроил свои модели для использования полиморфной модели изображения. Это работает нормально, однако мне интересно, можно ли изменить параметр: styles для каждой модели. примеры с использованием STI (Model Art Image Я попытался запустить отладчик внутри метода Proc . Заполняются только поля, относящиеся к прикрепленному файлу: Это объект из ImageController # create Я использую скрепку (2.3.5) и Rails 3.0.1. Независимо от того, что я делаю, объект a.instance - это изображение с заполненными только полями, связанными с вложением. Есть идеи? После того, как я много читал на форуме Paperclip, я не верю, что можно получить доступ к экземпляру до того, как он будет сохранен. Вы можете видеть только скрепки, и все. Я решил эту проблему, предварительно сохранив изображение из контроллера изображений с предварительным фильтром - без прикрепления has_many :images, :as => :imageable
belongs_to :imageable, :polymorphic => true
has_attached_file :file, :styles => { :thumb => "150x150>", :normal => "492x600>"}
#Change this setting depending on model
UPDATE
run'irb(Image):006:0> a.instance => #<Image id: nil, created_at: nil, updated_at: nil, imageable_id: nil, imageable_type: nil, file_file_name: "IMG_9834.JPG", file_content_type: "image/jpeg", file_file_size: 151326, file_updated_at: "2010-10-30 08:40:23">
ImageController#create
@image => #<Image id: nil, created_at: nil, updated_at: nil, imageable_id: 83, imageable_type: "Art", file_file_name: "IMG_9834.JPG", file_content_type: "image/jpeg", file_file_size: 151326, file_updated_at: "2010-10-30 08:32:49">
UPDATE2
before_filter :presave_image, :only => :create
...
private
def presave_image
if @image.id.nil? # Save if new record / Arts controller sets @image
@image = Image.new(:imageable_type => params[:image][:imageable_type], :imageable_id => params[:image][:imageable_id])
@image.save(:validate => false)
@image.file = params[:file] # Set to params[:image][:file] if you edit an image.
end
end