【发布时间】:2017-11-30 22:45:43
【问题描述】:
我正在使用命名空间,并且我有以下模型:
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
在 rails 控制台中,我执行以下操作并且工作正常:
Administradora::Owner.first.owner_mails
Junta::Mail.find(4).owner_mails
但如果我尝试:
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:验证失败:Administradora 所有者 必须存在,Junta 邮件必须存在
ID 3、4 确实存在于他们的表中。
怎么了?
【问题讨论】:
-
你的 Rails 版本是多少?
标签: ruby-on-rails activerecord namespaces