Rails使用同一命名空间中的模型进行belongs_to引用,如何从外部引用模型

Tân*_*Bùi 2 activerecord module ruby-on-rails

我正在开发 Rails 应用程序,目前我们按模块构建应用程序。现在我们为用户提供了 2 个独立的模型:User和Freight::Customer::User。

我有一个新模型,Freight::Customer::MembershipStatus如下所示:

class Freight::Customer::MembershipStatus < ActiveRecord::Base

  belongs_to :customer, class_name: 'Freight::Customer'
  belongs_to :created_by, class_name: 'User'

  validates :from, presence: true
  validates :to, presence: true
  validates :customer, presence: true
  validates :status, presence: true
end
Run Code Online (Sandbox Code Playgroud)

在本例中, 是created_by对 的引用User。但是当代码运行时membership_status.created_by,rails 尝试查找Freight::Customer::User,我认为这是因为 Rails 尝试首先在同一模块中查找模型。

有没有办法配置此模型以使用外部User模型类?

小智 5

您可以使用此类型获取用户类别,试试这个。

class Freight::Customer::MembershipStatus < ActiveRecord::Base

  belongs_to :customer, class_name: 'Freight::Customer'
  belongs_to :created_by, class_name: '::User'

  validates :from, presence: true
  validates :to, presence: true
  validates :customer, presence: true
  validates :status, presence: true
end
Run Code Online (Sandbox Code Playgroud)