2017-06-27 2 views
0

Ich verwende Namespace, und ich habe die Nachfolgemodelle:Ruby on Rails, Namespace, Modelle und viele-zu-viele-Verein

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 

In Schienen Konsole Ich habe folgende und funktioniert gut tun:

Administradora::Owner.first.owner_mails 
Junta::Mail.find(4).owner_mails 

Aber wenn ich versuche:

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 

bekomme ich folgende Fehlermeldung:

ActiveRecord::RecordInvalid: Validation failed: Administradora owner must exist, Junta mail must exist

Ids 3, 4 sie in ihren Tabellen existieren.

Was ist los?

+0

Was ist Ihre Rails-Version? –

Antwort

0

Ich denke, Sie müssen nur den class_name auf der Methode gehören. Gefällt mir:

belongs_to :administradora_owner, class_name: 'Administrator::Owner' ....