2016-11-10 92 views
0

我有一個名爲「activos」的模型,我只需要顯示與另一個名爲「relactivo」的模型沒有關聯的記錄。沒有關聯的rails範圍

我在模型一直在努力這樣的:範圍:TS, - > {包括(:relactivo)。凡(relactivo:{ACTIVO:無})}

這是我的模型 「activos」

class Activo < ActiveRecord::Base 
    self.primary_key = "IdActivos" 

    scope :ts, -> { includes(:relactivo).where(relactivo: { activo: nil}) } 


    has_one :relactivo, class_name: "Relactivo", foreign_key: "Activo" 


end 

和我的模型 「relactivo」

class Relactivo < ActiveRecord::Base 
    self.primary_key = "IdRow" 
    belongs_to :activo, class_name:"Activo", foreign_key: "Activo" 

end 
+0

嗨 - 那麼你看到的代碼有哪些錯誤?你期望什麼? –

回答

2

嘗試這樣做你的範圍:

class Activo < ActiveRecord::Base 
    self.primary_key = "IdActivos" 

    scope :ts, -> { joins('LEFT OUTER JOIN relactivos ON relactivos.IdActivos = activos.IdActivos WHERE relactivos.IdActivos IS null'))) } 

    has_one :relactivo, class_name: "Relactivo", foreign_key: "IdActivos" 

    end 

看看是否有效,自定義的主鍵/外鍵使它有點奇怪,但試試這個。

+0

Rails5中不是'left_outer_joins'嗎? –

+0

@ muistooshort,你是對的。我會更新我的答案。感謝您指出了這一點。 –

+0

@DanRubio謝謝,但仍然顯示我的所有記錄 – LuisC