Запрос на ассоциацию с Rails 6.0 - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю с ruby ​​на Rails 6.0. У меня есть две сущности, таблица событий и модуль драгоценного камня, например, для людей (человек). Одним из полей в таблице событий является contact_person, которое должно указывать на сотрудников модуля gem (person). Когда я пытаюсь заполнить таблицы исходными данными, я получаю: ActiveRecord :: RecordInvalid: Ошибка проверки: контактное лицо должно существовать

Ниже вы можете найти определения БД. Я здесь новичок, есть подсказка, что я делаю не так? Спасибо за любую помощь.

С уважением, Дани

Файл миграции для таблицы событий:

class CreateApplicationEvents < ActiveRecord::Migration[6.0]
  def change
        create_table :events
                t.references :contact_person, null: true, foreign_key: { 
                    to_table: :core_people_and_companies_people }
                t.timestamps
        end
  end
end

Файл модели для событий:

class Event < ApplicationRecord
  belongs_to :contact_person,
                  class_name: '::CoreModels::PeopleAndCompanies::Person'
end

Модуль драгоценного камня:

module CoreModels
    module PeopleAndCompanies
      Person.class_eval do
         has_many :events, :class_name => 'Event', :as => :contact_person
      end
    end
end

1 Ответ

0 голосов
/ 07 ноября 2019

Я решил это, добавив - "необязательно: истина" в файл событий:

"принадлежит_то: contact_person, имя_класса: ':: CoreModels :: PeopleAndCompanies :: Person', необязательно: true"

Спасибо всем. С уважением, Дани

...