Константы модели не определены после загрузки среды приложения Rails в блокнот Jupyter

Я пришел из Python фона и учусь Ruby на рельсах.

Я хотел использовать блокноты Jupyter для управления объектами Rails в качестве учебного упражнения. (Я следую руководству Rails Getting Started .)

После прочтения нескольких сообщений в блоге о том, как загрузить среду приложения Rails для создания сценариев, мне удалось создать экземпляры модели внутри ячеек в записной книжке Jupyter.

Однако для этого мне пришлось позвонитьRails.autoload "Article", чтобы создать новый экземпляр статьи.

Этот код выполняется внутри ноутбука Jupyter с ядром Ruby 2.3. Версия рельсов 4.2.6

ENV['RAILS_ENV'] = 'development'

require ::File.expand_path('../config/boot', __FILE__)

require ::File.expand_path('../config/environment', __FILE__)

Rails.autoload "Article"  # if I omit this line, Article is an undefined constant

article  = Article.new(text: "test")
article.save

Похоже, я близок к тому, чтобы иметь возможность манипулировать объектами, связанными с Rails, в моей записной книжке Jupyter.

Мой вопрос: что отсутствует, чтобы мне не нужно было вызывать Rails.autoload "Article"статью или любую другую модель?

Спасибо заранее.

1 ответ

  1. Я нашел решение здесь .

    Изменение pwd в каталог приложения, кажется, недостающий шаг.

    FileUtils.cd('/home/ubuntu/projects/ruby-docker-heroku/blog')
    
    require './config/boot'
    
    require './config/environment'
    
    Article # no more undefined constant error