Rails 5.2.2, Neo4J, Docker

Пример настройки Rails 5.2.2 и Neo4J в экосистеме Docker/Docker Compose. Указаны файлы необходимы для начала работы в существующем Ruby on Rails проекте. Можно воспринимать как контрольный лист интеграции Rails с Neo4J.

Gemfile

gem 'neo4j', '~> 9.4.0'

config/application.rb (or config/environments/{development|test|production}.rb)

require 'neo4j/railtie'

module App
  class Application < Rails::Application
    config.generators { |g| g.orm :neo4j }
    config.neo4j.session.type = :http
    config.neo4j.session.url = ENV['NEO4J_URL'] || 'http://neo4j:docker@neo:7474'
  end
end

config/neo4j.yml

development:
  type: http
  url: http://neo4j:docker@neo:7474

test:
  type: http
  url: http://neo4j:docker@neo:7575

production:
  type: http
  url: http://neo4j:docker@localhost:7474

docker-compose.yml

version: "3"
services:
  neo:
    image: neo4j:3.5
    ports:
      - 7474:7474
      - 7687:7687
    volumes:
      - ./neo4j/data:/data
      - ./neo4j/logs:/logs

app/models (person.rb)

class Person
  include Neo4j::ActiveNode
  
  # need migrations before use
  property :name
  property :text
  property :score, type: Integer, default: 0

  before_save do
    self.score = score * 100
  end

  self.mapped_label_name = 'Person'
end