루비에 대한 또 다른 진정한 초보자, 그러니 제발 부드럽게하십시오 ... 레일 3.0에서 알렉스 라이저의 지오 코더로 작업 중이며 지오 코더 :: 결과 라이브러리에서 메소드를 호출 할 수 없습니다. 지오 코더 문서를 훑어 보았습니다. 그러나 간단한 한 가지 작업을 수행 할 수 없습니다. 사용자가 제출 한 주소에서 "상태"결과를 추출하십시오. 그래서 "123 Fake Street, San Francisco, CA"를 "CA"또는 "California"로 변경하십시오.레일즈 지오 코더 "정의되지 않은 메소드 에러"
(내 프로그램에서는 결과를 결정하는 데 "상태"정보 만 사용하지만 나중에 앱을 수정하는 데 사용할 전체 주소 정보를 갖고 싶습니다. 전체 주소입니다.)
문서와 다른 답변에서 수집 할 수있는 최상의 모델을 설정했지만이 주제와 비슷한 이전 답변은 도움이되지 않았습니다.
class Project < ActiveRecord::Base
attr_accessible :title, :address, :latitude, :longitude
belongs_to :user
geocoded_by :address
after_validation :fetch_coordinates
reverse_geocoded_by :latitude, :longitude do |obj, geo|
obj.state = geo.state
obj.country_code = geo.country_code
obj.address = [geo.state, geo.country_code].join(",")
end
after_validation :reverse_geocode
end
그러나 상태, 국가 코드 및 주소에 대해 "정의되지 않은 오류 방법"이 표시됩니다. Geocoder gem의 설명서에서 이러한 방법을 명확하게 제공하므로 이해가되지 않습니다. 내 모델은 단순히 액세스 할 수없는 것 같습니다. (기록을 위해 내 모델은 입력 한 주소에서 위도와 경도를 가져올 수 있으므로 Geocoder가 올바르게 구성되어있는 것처럼 보이며 "geocoded_by"메서드가 훌륭하게 작동하며 Google API에 올바르게 설정되어 있습니다.
나는 여기에 뭔가 빠뜨린 것이 틀림 없다고 확신합니다. 레일 콘솔에서 Geocoder.search ("Miami, FL")를 사용하고 모든 카운티, 주 및 도시 정보를 가져올 수도 있지만 내 모델을 통해 "상태"를 추출 할 수는 없습니다.
도움 주셔서 감사합니다.
해당 코드를 사용하여 "city" "zipcode"및 "country"에 대해 정의되지 않은 메소드 오류 메시지가 표시됩니다. 지오 코더 :: 결과 문서를 속지 않았으므로 이들이 왜 작동하지 않는지 모르겠습니다. –
방금 가져 왔습니다. "obj"대신 "project"클래스를 사용해야하고 역 지오 코딩을 사용하지 않으려 고합니다. 도와 주셔서 감사합니다. –