2016-11-10 65 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