I've a method within an Event model..
def batch_import(folder)
require 'find'
Find::find("#{SOURCE_PATH}/#{folder}") do |path|
if path[-3..-1].downcase == 'jpg'
@photo = Picture.new()
@photo.data = File.new(path)
@photo.filename = File.basename(path)
@photo.caption = "none"
self.pictures << @photo
self.save
end
end
end
Where Picture is ..
class Picture < FlexImage::Model
file_store 'pictures'
belongs_to :event, :counter_cache => true
acts_as_list :scope => :event
acts_as_solr :fields => [:caption]
end
and Event is..
class Event < ActiveRecord::Base
has_many :pictures, :order => 'position',:dependent=>:destroy
When I run the code it uses a massive 1.5GB of memory to process 28
pictures. Ruby eventually returns the memory once you've browsed to
another view, but still?!?
Anyone have any ideas how/why?
should I be forcing garbage collection on @photo after each image?!?