Обычно приборы используются для обеспечения ваших тестов данными, а не для заполнения данных в вашей базе данных. Вы можете - и некоторые люди, как и ссылки, на которые вы указываете, - использовать приборы для этой цели.
С приборами все в порядке, но использование Ruby дает нам некоторые преимущества: например, возможность читать из файла CSV и заполнять записи на основе этого набора данных. Или читайте из файла фиксации YAML, если вы действительно этого хотите: начиная с того, что вы начинаете с языка программирования, ваши возможности уже открыты.
Моя текущая команда пыталась использовать db / seed.rb и проверяла RAILS_ENV для загрузки только определенных данных в определенных местах.
Раздражающая вещь в db: seed заключается в том, что она должна быть единственной в своем роде: так что если у вас есть дополнительные элементы, которые нужно добавить в процессе разработки - или когда ваше приложение вступает в производство - ... ну, вам нужно принять это во внимание (метод find_or_create_by ... () ActiveRecord может быть вашим другом здесь).
Мы попробовали плагин Bootstrapper , который ставит хороший DSL поверх проверки RAILS_ENV и позволяет запускать только ту среду, которую вы хотите. Это довольно мило.
Наши потребности на самом деле пошли дальше - мы обнаружили, что нам нужны миграции в стиле базы данных для наших начальных данных. Прямо сейчас мы помещаем обычные сценарии Ruby в папку (db / bootstrapdata /) и запускаем эти сценарии с помощью Арилда Ширази, необходимого gem для загрузки (и, следовательно, запуска) сценариев в этом каталоге.
Теперь это только часть миграции в стиле базы данных. Нетрудно перейти от этого к созданию чего-либо, где эти миграции данных могут быть выполнены только один раз (например, миграции баз данных).
Ваши потребности могут остановиться на начальном загрузчике: у нас есть довольно уникальные потребности (разработка системы, когда мы знаем только половину спецификации, обширная команда Rails, миграция больших данных из программного обеспечения предыдущего поколения. Ваши потребности могут быть проще).