2015-12-30 4 views
0

В настоящее время я просматриваю определенную папку и записываю изображения из этой папки в свою модель (для этого я использую rufus-scheduler в качестве фонового задания) , Теперь, когда это прекрасно работает, это просто делает что-то плохое.Проверка папки с Dir.glob и запись изображений в модель

require 'rufus-scheduler' 
scheduler = Rufus::Scheduler::singleton 

scheduler.in '5s' do 
    Image.new 
    @images = Dir.glob("app/assets/images/*.jpg") 
    @images.each do |image| 
    Image.create(file: @images) 
    end 
end 

Таким образом, через 5 секунд после того, как мои серверные страты, он записывает все файлы .JPG из папки активов в мою модель. Он делает отдельные идентификаторы так же, как я хотел, но он мутно помещает все изображения в 1 идентификатор вместо того, чтобы писать 1 изображение на каждый ID. Модель

<Image id: 54, created_at: "2015-12-30 21:30:24", updated_at: "2015-12-30 21:30:24", file: "[\"app/assets/images/Cup-1.jpg\", \"app/assets/images..."> 

Image атрибуты:

Image(id: integer, created_at: datetime, updated_at: datetime, file:string) 

Рядом с этим, я хотел бы пожелать всем уже счастливого Нового года!

+0

Пожалуйста, отметьте ответ Адама как принятый. – jmettraux

ответ

1

Прямо сейчас вы перечисляете @images и создаете модель для каждого, но сохраняете массив @images в атрибуте file. Правильная строка должна быть Image.create(file: image) или Image.find_or_create_by(file: image)