2017-07-25 2 views
1

Ich habe folgende Modelle:Namensräume Schlüsselsuche auf Rails 5 Verbindung mit Active

class Supervision::ApplicationRecord < ActiveRecord::Base 
    self.abstract_class = true 

    def self.table_name_prefix 
    "supervision_" 
    end 
end 
--------------- 
class Supervision::Activity < Supervision::ApplicationRecord 
    has_one :supervision_missed_visit, class_name: Supervision::MissedVisit 
    (...) 
end 
--------------- 
class Supervision::MissedVisit < Supervision::ApplicationRecord 
    belongs_to :supervision_activity, class_name: Supervision::Activity 
    (...) 
end 

Und ich habe auch dieses Modell, das nicht Namespace ist:

class Activity < ApplicationRecord 
    (...) 
end 

Immer wenn ich versuche zu erreichen die Supervision::MissedVisit durch seine has_one Beziehung, wie in

@supervision_activity.supervision_missed_visit

ich die folgende Fehlermeldung erhalten:

ERROR: column supervision_missed_visits.activity_id does not exist 

Wie mache ich es so, dass Rails weiß, dass ich für supervision_missed_visits.supervision_activity_id eigentlich bin auf der Suche?

Antwort

1

Sie konnten die Fremdschlüssel angeben:

has_one :supervision_missed_visit, class_name: Supervision::MissedVisit, foreign_key: 'supervision_activity_id'

Eine andere Möglichkeit, es zu tun wäre, eine Instanzmethode in Supervision::Activity zu erstellen:

def missed_visit 
    Supervision::MissedVisit.where(supervision_activity_id: id).take 
end