在用户和位置表之间加入

时间:2014-10-29 01:08:04

标签: ruby-on-rails

我在“用户”表格中存储了邮政编码,在“地点信息”表格中,我有来自所有50个州的 lat,lon 拉链数据。

我想完成这一行:

:geo => [current_user.latitude * Math::PI / 180.0, current_user.longitude * Math::PI / 180.0]

问题是用户只存储邮政编码。如何定义以便 current_user.latitude 根据当前用户的邮政编码显示纬度?

1 个答案:

答案 0 :(得分:0)

我对locations表的结构并不完全清楚,但是如下所示:

class User < ActiveRecord::Base
  def location
    @location ||= Location.where(zip: zipcode)
  end

  def latitude
    location.lat
  end

  def longitude
    location.lon
  end
end

真正的问题是如何构建users表和locations表之间的连接。如果每个列都包含一个包含邮政编码字符串的列,则只需要一个简单的where条件,就像上面User#location中显示的条件一样。