我对rails很新,我正在处理一项任务,该任务需要与“城市”选项卡类似的功能:http://haystack.com/cities。我搜索了所有书籍,似乎无法理解使所有这些成为可能的逻辑。我唯一能想到的就是逆向工程电子商务代码来做我想做的事情。有没有人有任何好主意?
答案 0 :(得分:2)
您至少需要从geonames.org或zipcodeworld.com等地方获取城市/州的数据列表。然后,您必须将城市映射到州,州/国家,然后找出一种干净的方式来显示它,就像haystack.com网站一样。我猜测顶级城市要么根据有多少用户请求每个城市来加权,要么仅根据所谓的热门城市进行加权。
大多数情况下,它只涉及您如何将每种数据类型(城市,州,国家)联系在一起。实际上,除了如何将所有这些都展示出来之外,其实很简单。基本上在您的数据库中有一个Cities,States和Countries表,然后创建类似于:
的模型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
答案 1 :(得分:0)