Используйте создать запись с Active Storage без ActionParameters - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать запись с изображением, директил с созданием и в модели

Banner.create ( start_at: Time.now, местоположение: «сайт», image_fr: File.new ("# {Rails.root} /db/seeds/images/banners/pdfs/gift_voucher_bottom.png", 'r'), image_de: File.new ("# {Rails.root} /db/seeds/images/banners/pdfs/gift_voucher_bottom.png", 'r'), ширина: 595, высота: ноль )

Я должен сделать в момент создания, а не с .attach после, из-за проверки. Можем ли мы сделать это?

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете передать блок на create. Он будет вызван с новой записью до ее сохранения:

Banner.create(start_at: Time.now, location: 'site', width: 595, height: nil) do |banner|
  Rails.root.join('db/seeds/images/banners/pdfs/gift_voucher_bottom.png').open('rb') do |io|
    banner.image_fr.attach(io: io, filename: 'banner.png', content_type: 'image/png')
  end

  # ...
end
...