2012-04-04 35 views
0

我有一個表稱爲我的數據庫中的路由,其中​​每個路由都有一個起點和終點。 給定任何出處,我希望能夠返回可以直接從該原點或從任何與此原點鏈接的目的地到達的目的地列表。 我如何在Ruby中做到這一點?Ruby on Rails - 從數據庫中檢索元素數組,並使用擴展

def find_available_routes(origin) 
    routes = Array.new 
    #each row in routes has 'origin' and 'destination' 
end 

回答

1

你的意思是說,任何目的地都可以通過最多一次「停留」來達到?

def find_available_routes(origin) 
    order_0_routes = Routes.where(:origin => origin) 
    destinations = order_0_routes.map(&:destination) 
    order_1_routes = Routes.where(:origin => [origin, *destinations]) 
end 

這不完全是快,但是這取決於應用程序的需求,應該是可以接受的。緩存將是一個簡單的選擇。

0

我有我的數據庫中的表稱爲路由每個路由具有 的始發地和目的地。鑑於任何出身,我希望能夠 返回一個目的地列表,可以直接從這個 來源或從任何目的地鏈接到這個來源。我如何 在Ruby中做到這一點?

def find_available_routes(origin) 
    #each row in routes has 'origin' and 'destination' 
    Routes.where(:origin => origin) 
end 

我建議,你應該去雖然這guides.rubyonrails - association_basics

相關問題