Ruby on Rails, Neo4j, Ассоциации - has_many и own_to - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь заставить отношения идти обоими путями, но это не работает:

p = Project.first

=> #<Project uuid: "11b13226-e186-4bf9-91f3-4f1470826251", name: "Walker, Heaney and Fritsch, Teller & Sons">

Теперь давайте создадим модель, которая принадлежит этому проекту:

model = p.models.new(name: 'Stadium 4')

=> #<Model uuid: nil, name: "Stadium 4">.

давайте сохранимэта модель

model.save
=> true

Теперь давайте попробуем получить проект модели (к которому она относится):

=> nil
  • Вопрос : Почему это так?ноль?Кажется, не работает, как я ожидаю.Я хочу получить доступ к проекту из экземпляра модели, и наоборот, если у меня есть экземпляр проекта, я хочу получить доступ ко всем моделям, с которыми он связан.Та же самая ситуация применяется, когда я пытаюсь создать соответствующие отношения в рельсах - отношения не выглядят так, как будто они создаются.Совет очень ценится.

project.rb

class Project
  include Neo4j::ActiveNode
  property :name, type: String

  validates :name, :presence => true

  has_many :in, :models, type: :HAS_MODELS, model_class: :Model
end

class Model
  include Neo4j::ActiveNode
  property :name, type: String

  has_one :out, :project, type: :BELONGS_TO, model_class: :Project

end


// Taken from the models_controller.rb
  def create
    @model = Model.new(model_params)

    respond_to do |format|
      if @model.save
        format.html { redirect_to @model, notice: 'Model was successfully created.' }
        format.json { render :show, status: :created, location: @model }
      else
        format.html { render :new }
        format.json { render json: @model.errors, status: :unprocessable_entity }
      end
    end
  end
...