我的数据库中有一个名为路由的表,其中每条路由都有一个起点和终点。给定任何来源,我希望能够返回可以直接从该来源或与该来源链接的任何目的地到达的目的地列表。我怎样才能在 Ruby 中做到这一点?
def find_available_routes(origin)
routes = Array.new
#each row in routes has 'origin' and 'destination'
end
我的数据库中有一个名为路由的表,其中每条路由都有一个起点和终点。给定任何来源,我希望能够返回可以直接从该来源或与该来源链接的任何目的地到达的目的地列表。我怎样才能在 Ruby 中做到这一点?
def find_available_routes(origin)
routes = Array.new
#each row in routes has 'origin' and 'destination'
end
您的意思是基本上可以通过最多一次“停留”到达的任何目的地?
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
这不会很快,但根据您的应用程序的需要,它应该是可以接受的。缓存将是一个简单的选择。
我的数据库中有一个名为路由的表,其中每条路由都有一个起点和终点。给定任何来源,我希望能够返回可以直接从该来源或与该来源链接的任何目的地到达的目的地列表。我怎样才能在 Ruby 中做到这一点?
def find_available_routes(origin)
#each row in routes has 'origin' and 'destination'
Routes.where(:origin => origin)
end
我建议,你应该去看看这个guides.rubyonrails - association_basics。