2014-02-18 49 views
0

我使用了以下內容:軌道4連接關聯的表 - 在排序時的一些記錄沒有關聯

Vehicle.joins(:supplier, :owner, :model).order("#{sort_column} #{sort_direction}") 

,讓我訂購的屬性的結果在任何4個相關的模型。問題在於特定車輛沒有關聯時,例如供應商,則不會返回結果。只有所有車輛都有3個協會纔能有結果顯示。

有沒有其他方法可以實現我需要的功能?

回答

2

默認情況下,rails會進行內連接。這就是爲什麼當沒有關聯時你沒有看到記錄。

如果你願意,你可以通過提到它明確

Vehicle 
.joins("LEFT JOIN suppliers on vehicles.supplier_id = suppliers.id") 
.joins("LEFT JOIN owners on vehicles.owner_id = owners.id") 
.joins("LEFT JOIN models on vehicles.model_id = models.id") 
.order("#{sort_column} #{sort_direction}") 

我猜你table_names和foreign_key名稱基於關聯名稱更改連接的類型。如果它們不同,請更改它