Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型
Posted
技术标签:
【中文标题】Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型【英文标题】:Rails use model in the same namespace for belongs_to reference, how to reference model from outside 【发布时间】:2018-11-09 02:19:22 【问题描述】:我正在开发一个 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
在这种情况下,created_by
是对User
的引用。但是当代码运行membership_status.created_by
时,rails会尝试寻找Freight::Customer::User
,我认为这是因为Rails首先尝试在同一个模块中寻找模型。
有没有办法将此模型配置为使用外部 User
模型类?
【问题讨论】:
【参考方案1】:你可以使用这种类型获取用户类,试试这个。
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
【讨论】:
谢谢,它对我有用,一直在寻找这个以上是关于Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型的主要内容,如果未能解决你的问题,请参考以下文章