Ruby on rails RubyonRails、名称空间、模型和多对多关联
我使用的是名称空间,我有以下模型:Ruby on rails RubyonRails、名称空间、模型和多对多关联,ruby-on-rails,activerecord,namespaces,Ruby On Rails,Activerecord,Namespaces,我使用的是名称空间,我有以下模型: class Administradora::Owner < ApplicationRecord has_many :owner_mails, foreign_key: :administradora_owner_id has_many :junta_mails, through: :owner_mails end class Junta::Mail < ApplicationRecord has_many :owner_mails,
class Administradora::Owner < ApplicationRecord
has_many :owner_mails, foreign_key: :administradora_owner_id
has_many :junta_mails, through: :owner_mails
end
class Junta::Mail < ApplicationRecord
has_many :owner_mails, class_name: "OwnerMail", foreign_key: :junta_mail_id
has_many :adminstradora_owners, through: :owner_mails
end
class OwnerMail < ApplicationRecord
belongs_to :administradora_owner, :foreign_key => :owner_id, :primary_key => :administradora_owner_id
belongs_to :junta_mail, :foreign_key => :mail_id, :primary_key => :mail_id
end
但如果我尝试:
x = OwnerMail.create(administradora_owner_id: 4,junta_mail_id: 3, created_at: "2016/04/04", updated_at: "2016/04/04")
(0.2ms) BEGIN
(0.5ms) ROLLBACK
我得到以下错误:
ActiveRecord::RecordInvalid:验证失败:Administratora所有者
必须存在,军政府邮件必须存在
ID3
,4
确实存在于它们的表中
怎么了?我想您只需要在“属于”方法上指定类名。 像这样:
belongs_to :administradora_owner, class_name: 'Administrator::Owner' ....
你的Rails版本是什么?
belongs_to :administradora_owner, class_name: 'Administrator::Owner' ....