Ruby on rails 地理编码器:从查询中删除近方法?

Ruby on rails 地理编码器:从查询中删除近方法?,ruby-on-rails,ruby,ruby-on-rails-4,rails-geocoder,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Geocoder,在Rails 4中,我试图在页面上显示距离。我有模特儿,孩子,爸爸和妈妈。这孩子属于父母。妈妈的是基于地址或在线的 Dads控制器 def show @dad = Dad.find(params[:id]) near = Mom.near(@user_location, 5000, :select => "kids.*") online = Mom.where(is_online: true) near = near.arel.constraints.reduce(

在Rails 4中,我试图在页面上显示距离。我有模特儿,孩子,爸爸和妈妈。这孩子属于父母。妈妈的是基于地址或在线的

Dads控制器

def show
  @dad = Dad.find(params[:id])
  near = Mom.near(@user_location, 5000, :select => "kids.*")
  online = Mom.where(is_online: true)    
  near = near.arel.constraints.reduce(:and)
  online = online.arel.constraints.reduce(:and)
  mom = Mom.where((near).or(online))
  @kids = @dad.kids.joins(:mom).merge(mom).order("moms.is_online DESC")
end
现在,当我尝试在视图中使用距离时:

<% @kids.each do |kid| %>
  <%= kid.mom.distance.round(0) %>
<% end %>

我得到一个错误:

Undefined method `distance' for #<Mom:0x9e7fc94>
未定义的方法“距离”#

调试后,我发现
Mom
distance
不起作用,因为
near
方法不存在了。我不确定我能做些什么使它再次成为
Mom
模型的一部分。我在这里,这里,寻找一些可能的答案。你知道我应该做什么吗?

有趣的是,也许这不是最优雅的解决方案,但关于:

<%= kid.mom.distance_to [kid.latitude, kid.longitude] %>

在进一步调试之后,我发现
距离方法并不完全在Mom上,这意味着Mom也没有按距离排序。我根据用户的位置得到了与妈妈的距离。所以,我做了
[current\u user.latitude,current\u user.longitude]
,这确实显示了距离,但是如果我可以在查询中得到我的
距离,这就不需要了。有什么想法吗?我在看这里:这里: