Rails принадлежит_to / has_many с внешней моделью - PullRequest
0 голосов
/ 06 июля 2018

В моем приложении на Rails 5.2 я хочу сослаться на другую модель. У меня есть следующие настройки в приложении:

class SomeModule::AnotherModule::User < ApplicationRecord
  has_many :phones
end

class Phone < ApplicationRecord
  belongs_to :user, optional: true, class_name: '::SomeModule::AnotherModule::User'
end

Миграция была сделана так:

add_reference :phones, :user, foreign_key: true, index: true

Теперь, когда я пытаюсь позвонить пользователю с телефона, я получаю следующее:

Phone.first.user
#=> NameError: uninitialized constant User::Phone
from /home/testuser/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/inheritance.rb:196:in `compute_type'

Удаление атрибута class_name: ничего не меняет.

Что я делаю не так?

1 Ответ

0 голосов
/ 06 июля 2018
class SomeModule::AnotherModule::User < ApplicationRecord
  has_many :phones, class_name: 'Phone', foreign_key: 'user_id'
end

class Phone < ApplicationRecord
  belongs_to :user, optional: true, class_name: 'SomeModule::AnotherModule::User', foreign_key: 'user_id'
end
...