2013-07-02 4 views
0

Gmaps4rails API를 사용하고 있습니다. 그러나 주소를 업데이트하거나 편집 할 때마다 gmaps4rails는 여전히 이전 주소를 가리 킵니다. 나는 레일을 처음 사용하므로 실수가 무엇인지 잘 모릅니다.주소 필드가 변경되면 Gmaps4rails가 업데이트되지 않습니다.

다음은 내 Controller.rb 파일

def show 
    if current_user.Company.nil? 
    @estate = current_user.estates.find(params[:id]) 
    else 
    @estate = Estate.find(params[:id]) 
    end 

    respond_to do |format| 
    format.html # show.html.erb 
    format.json { render json: @estate } 
    end 
end 

def new 
    @@key = params[:user_id] 
    @master = @@key 
    @estate = Estate.new 
    @json = @estate.all.to_gmaps4rails 

    respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @estate } 
    end 
end 

def edit 
    @estate = Estate.find(params[:id]) 
    @json = @estate.to_gmaps4rails 
end 

def create 
    # @estate = Estate.new(params[:estate]) 
    if current_user.Company.nil? 
    @estate = current_user.estates.build(params[:estate]) 
    else 
    serve = User.find(@@key) 
    @estate = Estate.new(params[:estate]) 
    @estate.user_id = serve.id 
    @estate.Mgmt = current_user.Company 
    end 

    respond_to do |format| 
    if @estate.save 
     if current_user.Company.nil? 
     if @estate.companyemail = '' 
     ## 
     else 
      EstateMailer.company_confirmation(@estate).deliver 
     end 
     end 

     format.html { redirect_to @estate, notice: 'Property details were successfully updated.' } 
     format.json { render json: @estate, status: :created, location: @estate } 
    else 
     format.html { render action: "new" } 
     format.json { render json: @estate.errors, status: :unprocessable_entity } 
    end 
    end 
end 

def update 
    @estate = Estate.find(params[:id]) 
    @json = Estate.all.to_gmaps4rails 

    respond_to do |format| 
    if @estate.update_attributes(params[:estate]) 
     format.html { redirect_to @estate, notice: 'Property details were successfully updated.' } 
     format.json { head :no_content } 
    else 
     format.html { render action: "edit" } 
     format.json { render json: @estate.errors, status: :unprocessable_entity } 
    end 
    end 
end 
+0

지저분한! 블레미, 당신의 코드 정리. 나는 당신을 위해 그것을 형식화 하겠지만, 당신이 더 예쁘게하려고한다면 더 나은 대답을 얻을 것이다. – simonmorley

+0

코드를 다시 형식화했으나이를 수행하고 다른 사람에게 의존하지 않아야합니다. 게다가, 실제 코드가 이처럼 복잡하다면, 상황을 파악하는 데 어려움을 겪을 것입니다. 왜 자본화 된 current_user.Company.nil을 가지고 있습니까? 나는 그것이 옳다고 믿지 않는다. 그리고 두 번 중첩 된 if else 루프를 만들면 인생이 힘들어집니다. – simonmorley

+0

죄송합니다, 마지막 코멘트 : 어디에서 lon과 lat을 (를) 제출하십니까? 양식의 일부입니까? 그렇다면 양식 코드를 간결하게 게시하십시오. – simonmorley

답변

0

당신은 당신의 모델

:check_process : true/false (if set to false, geocoding will be made at every save/update) 

:checker : string (only if check_process is true), could be a method or a db column boolean 

더 많은 정보 here이 뭔가를해야합니다 SO post

에 따라이 시도입니다. Google은 귀하의 친구임을 기억하십시오.