Kaip įdiegti failų atsisiuntimą programiniu būdu naudojant programą „Klipas“

Turiu užduotį grėbti, sėti programą atsitiktiniais duomenimis, naudojant brangakmenio fakerį. Tačiau mes taip pat turime atvaizdus (pvz., Logotipus), kuriuos norime parsisiųsti šioje užduotyje.

Mes jau įdiegėme sąvaržėlę, tačiau negalite įkelti programų į rake užduotį. Bet kokios idėjos?

59
09 сент. nustatė Jaryl Sep 09 2009-09-09 06:59 '09, 6:59 am. 2009-09-09 06:59
@ 3 atsakymai

Ką reiškia programa? Jūs galite pritaikyti metodą, kuris bus vykdomas linijos keliu

 my_model_instance = MyModel.new file = File.open(file_path) my_model_instance.attachment = file file.close my_model_instance.save! 

#attachment gaunamas iš mūsų #attachment deklaracijos mūsų modelyje. Šiuo atveju atrodo mūsų modelis

 class MyModel < ActiveRecord::Base has_attached_file :attachment end 

Įkeliant projektą atlikome panašias operacijas.

125
09 сент. atsakymas pateikiamas IV rugsėjo 09 d 2009-09-09 07:18 '09, 07:18 AM 2009-09-09 07:18

Tai darau kažką panašaus į problemą.

 photo_path = './test/fixtures/files/*.jpg' Dir.glob(photo_path).entries.each do |e| model = Model.find(<query here>) model.attachment = File.open(e) model.save end 

Tikiuosi, kad tai padės!

12
09 сент. atsakymą pateikė jonnii rugsėjo 09 2009-09-09 07:19 '09 at 7:19 AM 2009-09-09 07:19

Man nereikėjo parašyti šio metodo. Daug lengviau.

Modelis →

 Class Model_Name < ActiveRecord::Base has_attached_file :my_attachment, :params_for_attachment 

„Seed.db“ →

 my_instance = Model_name.new my_instance.my_attachment = File.open('path/to/file/relative/to/app') my_instance.save! 

Galbūt ankstesni atsakymai reiškė modelio pavadinimo pavadinimą (vietoj to, kad būtų parašytas Model_name.attachment metodas). Tikiuosi, kad tai aišku.

8
23 мая '11 в 19:13 2011-05-23 19:13 atsakymas pateikiamas gegužės 23 d., 11 d., 19:13, 2011-05-23 19:13

Žr. Kitus klausimus apie žymes arba Užduokite klausimą