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

时间:2018-05-30 09:28:06

标签: ruby-on-rails activerecord module

我正在研究Rails应用程序,目前我们按模块构建应用程序。现在,我们为用户提供了2个单独的模型:UserFreight::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

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

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

1 个答案:

答案 0 :(得分:3)

您可以使用此类型获取用户类,请尝试此操作。

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