2012-04-04 21 views
0

各ルートに起点と目的地があるデータベース内のルートと呼ばれるテーブルがあります。 発信元があれば、この発信元から直接到達できる宛先のリスト、またはこの発信元とリンクしている宛先のリストを返すことができます。 Rubyでどうすればいいですか?各ルートは 出発地と目的地を有する場合Ruby on Rails - 拡張でDBから要素の配列を取得

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

答えて

1

基本的に、たった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かかわらず行くべき、示唆しています。

関連する問題