Я новичок в рубине на рельсах.
У меня есть приложения для подсчета расстояния между станцией метро и банкоматом.
Есть две модели, имеющие отношение многие ко многим: Station, Cashpoint. И есть диспетчерское ШОУ, которое должно получить станцию и показать банкоматы, чтобы рядом была станция.
class StationsController < ApplicationController
def show
@station = Station.find(params[:id])
@cashpoints = @station.cashpoints.find(:all)
respond_to do |format|
format.html
end
end
end
Также есть помощник, который считает расстояние с помощью Google Directions API.
module StationsHelper
def count_distance(origin,destination)
...
return {:text => ... # 1 min
, :value => ... # 60 (seconds)
}
end
end
Все это работает правильно.
Но мне интересно, как заказать банкоматы по: стоимости, возвращаемой StationsHelper?
Я пытался написать что-то в контроллере, похожее на:
@cashpoints = @station.cashpoints.find(:all,
:order => count_distance(@station.address, cashpoint.address)[:value])
Но, очевидно, это не работает, потому что я знаю, как связать один объект Cashpoint
к параметру count_distance.
Может быть, вы мне поможете, похоже, структура моего проекта не подходит для этого.