我是rails的新手,我正在处理一项任务,它需要与这里的Cities选项卡类似的功能:http://haystack.com/cities。我已经搜索了所有的书,但似乎无法理解使这一切成为可能的逻辑。我唯一能想到的就是逆向工程电子商务代码来做我想做的事情。有人有什么好点子吗?
发布于 2009-11-13 05:03:33
您至少需要从geonames.org或zipcodeworld.com之类的地方获取城市/州数据的列表。然后,您必须将城市映射到州,将州映射到国家,然后找出一种简洁的显示方式,就像haystack.com站点一样。我猜测,排名靠前的城市要么根据每个城市的用户请求数量进行加权,要么简单地根据所谓的热门城市进行加权。
大多数情况下,它只涉及如何将这些数据类型(城市、州、国家)中的每一个关联在一起。除了如何布局之外,实际的显示是很简单的。基本上在你的数据库中有一个城市,州和国家表,然后创建类似这样的模型:
class Country
has_many :states
end
class State
belongs_to :country
has_many :cities
end
class City
belongs_to :state
end编辑:将其与用户关联:假设一个用户只能属于一个城市(尽管多个城市也不是那么困难),它将如下所示:
class User
belongs_to :city
end
class City
belongs_to :state
has_many :users
end 你应该能够做这样的事情:
usr = User.find(a_user_id)
usr.city #New York City
usr.city.state #New York
usr.city.state.country #United States发布于 2009-11-12 22:47:46
可能是这样的:
http://www.geonames.org/export/
就是你要找的?
https://stackoverflow.com/questions/1721289
复制相似问题