Rails belongs_to/has_many 与外部模型
Rails belongs_to/has_many with external Model
在我的 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 调用用户时,我得到了这个:
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:
属性不会改变任何内容。
我做错了什么?
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
在我的 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 调用用户时,我得到了这个:
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:
属性不会改变任何内容。
我做错了什么?
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