回答

1

您可以使用reflect_on_all_associations爲:

Foo.reflect_on_all_associations(:belongs_to).map(&:name).include?(:example_assoc) 

哪裏:example_assocbelongs_to協會之一。

或者,如果你有模型類的一個實例:

@foo.class.reflect_on_all_associations(:belongs_to).map(&:name).include?(:example_assoc) 
+0

現在讀我明白什麼真正的問題了。我雖然問題是「如果有任何關聯的對象」。 – gernberg

1

如果你試圖儘量減少查詢的數量也許你應該考慮使用「包括」躍躍欲試負荷的關聯。

例如,

foos = Foo.includes(:example_associations).all 
後來在一個循環或東西

,然後調用

foo.example_associations.present? 

時,不應以任何額外的數據庫查詢

+0

情況並非如此,因爲包含在Foo上生成左外連接,這意味着它將始終包含Foo,並返回nil:example_associations,如果Foo沒有。 – corvuszero

相關問題