0

データベース内にルートと呼ばれるテーブルがあり、各ルートには出発地と目的地があります。任意のオリジンが与えられた場合、このオリジンから直接、またはこのオリジンにリンクする任意の宛先から到達できる宛先のリストを返すことができるようにしたいと考えています。Rubyでこれを行うにはどうすればよいですか?

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

2 に答える 2

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

これは正確には高速ではありませんが、アプリケーションのニーズによっては許容できるはずです。キャッシングは簡単なオプションです。

于 2012-04-04T04:41:28.903 に答える
0

データベース内にルートと呼ばれるテーブルがあり、各ルートには出発地と目的地があります。任意のオリジンが与えられた場合、このオリジンから直接到達できる、またはこのオリジンにリンクする任意の宛先から到達できる宛先のリストを返すことができるようにしたいと考えています。Rubyでこれを行うにはどうすればよいですか?

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

このguides.rubyonrails - association_basicsを参照することをお勧めします。

于 2012-04-04T04:32:57.770 に答える