#ruby-on-rails
#ruby-on-rails
Вопрос:
У меня есть приложение Rails 4.2. Я хочу создать скрипт в папке lib, который я буду использовать для создания записей в моей базе данных. Итак, гипотетически:
lib/user_builder.rb
require 'rubygems'
require 'active_record'
require './app/models/application_record.rb'
require './app/models/client.rb'
module UserTheory
class UserBuilder
def initialize
user = User.find_or_initialize_by(id: 1)
user.name = 'Bob'
user.save
end
end
end
Мне потребовались эти файлы, потому что я получал NameErrors об этих классах. Теперь я получаю другую ошибку:
/usr/local/bundle/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/connection_pool.rb:570:in `retrieve_connection': No connection pool for User (ActiveRecord::ConnectionNotEstablished)
очевидно, что я иду по этому неправильному пути.
Комментарии:
1. вместо того, чтобы помещать его в
lib
, попробуйте использовать каталог внутри,app/
напримерapp/services
. Тогда вам не понадобятся требования, и автозагрузка должна работать должным образом.2. Почему вы просто не используете
db/seeds.rb
файл?3. На самом деле, вы можете использовать rake tasks для выполнения вашего дела
4.
db/seeds.rb
вот как это сделать.