2009-11-12 3 views
0

저는 레일스에 비교적 익숙하지 않아 여기 도시 탭과 비슷한 기능이 필요한 작업을 수행하고 있습니다 : http://haystack.com/cities. 나는 모든 책을 수색했으며이 모든 것을 가능하게하는 논리를 이해하는 것처럼 보이지 않습니다. 내가 생각할 수있는 유일한 것은 리버스 엔지니어링 전자 상거래 코드로 내가 원하는 것을 수행하는 것이다. 누구든지 밝은 아이디어가 있습니까? 이 같은Rails City Listings

+0

당신이하고 싶은 국가와 citie 목록입니다 s? –

+0

37 개의 신호를 보낸 개발자가 자신이 한 작업 (새로운 Podcast : http://37signals.com/podcast에서 약간 논의 함)을 말하지 않는 한, 사용자는 원하는 것을 설명해야합니다. 자세한 세부 사항. –

답변

2

적어도 geonames.org 또는 zipcodeworld.com과 같은 도시/주 데이터 목록을 가져올 필요가 있습니다. 그런 다음 도시를 주, 주, 그리고 국가에 매핑 한 다음 haystack.com 사이트와 마찬가지로이를 표시 할 수있는 명확한 방법을 찾아야합니다. 나는 최고의 도시가 얼마나 많은 사용자가 각 도시를 요청했는지 또는 추정 된 인기 도시에 의해 간단히 가중치를 부여 받았는지 추측 할 것입니다.

대부분은 각 데이터 유형 (시,도, 국가)을 어떻게 관련 지을 수 있습니다. 실제로 그것을 표시하는 방법과는 별도로 표시하는 것은 간단합니다. 기본적으로, 당신의 DB의 도시, 주 및 국가 테이블이 다음 모델에게 같은 것을 만들 : 사용자와 연관시킬 :

class Country 
    has_many :states 
end 

class State 
    belongs_to :country 
    has_many :cities 
end 

class City 
    belongs_to :state 
end 

EDIT 사용자는 (한 도시에 속할 수 있다고 가정하더라도 여러는 않을 것 당신은 같은 일을 할 수 있어야

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 
+0

좋아요, 그렇다면 사용자에게 가입해야합니다. 내가 어떻게 그럴 수 있니? – openfractal

+0

은 위의 답변에 데모 케이스를 추가했습니다. – Lukas

관련 문제