Когда вы запускаете сервер rails (или консоль rails), он предварительно загружает ваше приложение Rails, чтобы ваши модели, константы и т. Д. c. автоматически попадают в область действия. Если вы хотите получить доступ к ресурсам вашего приложения из отдельного скрипта, вам все равно нужно загрузить приложение. Самый простой способ сделать это - использовать команду rails runner
, которая загружает ваше приложение, а затем выполняет сценарий. Итак, если ваш скрипт выше находится в lib/show_machines
, вы должны запустить:
$ bin/rails runner lib/show_machines
Если вам нравятся самоисполняющиеся скрипты, вы также можете использовать runner как строку 'shebang':
#!/usr/bin/env <your_project_path>/rails/runner
@machines = Machine.all
@machines.each do |machine|
puts machine.created_at
end