我有以下型號/關係父母的集合:的Rails得到孩子
class Directory < ActiveRecord::Base
has_one :location
end
class Location < ActiveRecord::Base
belongs_to :directory
geocoded_by :full_address
end
Location
使用geocoder
寶石。每個目錄條目都有一個位置,以及目錄信息(聯繫人,網站等)。
在directory#index
中,我想顯示靠近用戶搜索位置的位置。到目前爲止,我有:
def index
if params[:search].present?
@directories = Location.near(params[:search], 50, :order => :distance).paginate(page: params[:page], :per_page => 10)
else
@directories = Directory.order(:name).paginate(page: params[:page], :per_page => 10)
end
end
如何返回對應位置(兒童)目錄(父)項的集合?
謝謝阿列克謝你的詳細答案,但它不適合我。我懷疑這是因爲我父母和孩子之間有'has_one'關係,所以沒有'locations'關聯。我試着把它定位,但這似乎沒有幫助。我想我會堅持我的方法(並不是那麼糟糕,因爲我父母和孩子之間有一對一的關係),但希望你的回答可以幫助其他人。 –
哦,真遺憾。我不認爲'has_one'是一個問題,也許它是'geocoder'產生一些我不知道的大量查詢。不過,我很高興你已經解決了你的問題:) –