Как я могу автоматизировать загрузку данных в грабли - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть задача rake, которая заполняет базу данных значениями.

Вот пример:

Icon.create!(  :category_id => category_id,
               :name => "Wink",
               :url => "#{url}wink.png",
               :icon_for => icon_for )

Я хотел бы автоматизировать это, поскольку атрибут 'name' - это просто имя файла в папке, но в верхнем регистре и без окончания, а атрибут 'url' - это просто имя файла.

Остальное я контролирую переменными.

Есть ли способ, которым я мог бы что-то вроде этого:

  1. прочитать количество файлов в указанной папке
  2. зациклите это число раз и создайте объект, вставляя значения для имен файлов, где это необходимо.

Как я могу это сделать?

Заранее спасибо.

Rails 3.0.7 Ruby 1.9.2 Mac OSX 10.6

1 Ответ

1 голос
/ 01 сентября 2011

Да, вы делаете это с помощью стандартных библиотек Ruby. Вы должны узнать о File class и Dir class . Вот эскиз того, как может выглядеть ваш код:

(Dir.entries("path/to/specified/folder") - ['.','..']).each do |filename|
  Icon.create!(:category_id => category_id,
               :name => filename,
               :url => url + filename,
               :icon_for => icon_for)
end

Я оставлю это в качестве упражнения для вас, чтобы выяснить, как использовать заглавную букву в первой букве имени файла и отсоединить расширение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...