2012-10-03 3 views
0

방금 ​​multistep forms의 railscasts를 보았습니다. 이제는 새 인스턴스를 만들 때 훌륭하게 작동하는 다단계 양식을 가지고 있지만 업데이트 및 편집이 작동하지 않습니다. 다단계를 수행하지만 계속하려면를 클릭하십시오. 레일 다단계 양식 업데이트 인스턴스

컨트롤러는 ... 내가 오류가 deep_merge 국가가 할 수없는 일이

session[:location_params].deep_merge!(params[:location]) if params[:location] 

사용하는 경우 ... 마지막 단계는 그냥 업데이트하지 않습니다, 그리고 세션이 분실 보인다 ...

def edit 
    @location = Location.find(params[:id]) 
    session[:location_params] = @location 
    @location.current_step = session[:location_step] = @location.steps.first 
    end 

    def update 
    @location = Location.find(params[:id]) 
    @location.current_step = session[:location_step] 
    if params[:back_button] 
     @location.previous_step 
    elsif @location.last_step? 
     @location.save if @location.all_valid? and @location.changed? 
    else 
     @location.next_step 
    end 
    session[:location_step] = @location.current_step 
    if @location.created_at_changed? 
     flash[:success] = "Location updated!" 
     session[:location_step] = session[:location_params] = nil 
     redirect_to @location 
    else 
     render 'edit' 
    end 
    end 

귀하의 도움과 안내에 감사드립니다.

+0

유효하지 않기 때문에 저장되지 않았습니다. [디버거] (https://github.com/cldwalker/debugger)를 추가하고 변수 상태를 살펴 보시기 바랍니다. 그것은 훨씬 더 빠르며 적절한 답을 기다리고있을 것입니다. –

+0

세션과 매개 변수를 살펴보기 위해 디버그를했는데 무슨 일이 일어 났는지 보았습니다. 그런 다음 http://www.jankoatwarpspeed.com/post/2009/09/28/webform-wizard-jquery를 사용하기로 결정했습니다. aspx. Vadim 감사합니다. – maumercado

+0

답변으로 게시하고 받아 들여야한다고 생각합니다 (더 이상 도움이 필요하지 않으므로). –

답변

1

FormToWizard jquery 라이브러리를 사용하여 종료했습니다. here을 다운로드 할 수 있습니다.

깨끗하고보기가 매우 깨끗하고 유지 보수가 쉽고 컨트롤러에서 아무 것도 변경하지 않습니다!