2014-10-29 3 views
0

각 페이지에는 연속 된 4 페이지가있는 폼이 있습니다.컨트롤러에 다른 폼 포스트 데이터 저장하기

1 페이지의 양식 1이 제출되면 컨트롤러에서 하나의 API를 호출하고 페이지 2로 이동합니다. 페이지 2에서도 같은 일이 반복됩니다.

마침내 양식 4 제출에 페이지 요약을 원합니다.

양식 1의 값이 올바르지 않으면 제출 된 값이 미리 채워진 양식 1 페이지로 리디렉션됩니다.

양식 4를 제출 한 후 레코드를 db로 저장합니다.

API (fedex)는 제출 된 마지막 양식까지 보관해야하는 해시가있는 많은 데이터를 반환합니다.

세션에서 양식 데이터를 저장하는 것이 좋습니다.

제발 조언합니다.

답변

2

나는 여러 단계 형식에 대해 이야기하고 있다고 생각합니다. 자세한 튜토리얼은 this railscast에 있습니다.

def new 
    session[:order_params] ||= {} 
    @order = Order.new(session[:order_params]) 
    @order.current_step = session[:order_step] 
end 

def create 
    session[:order_params].deep_merge!(params[:order]) if params[:order] 
    @order = Order.new(session[:order_params]) 
    @order.current_step = session[:order_step] 
    if @order.valid? 
    if params[:back_button] 
     @order.previous_step 
    elsif @order.last_step? 
     @order.save if @order.all_valid? 
    else 
     @order.next_step 
    end 
    session[:order_step] = @order.current_step 
    end 
    if @order.new_record? 
    render "new" 
    else 
    session[:order_step] = session[:order_params] = nil 
    flash[:notice] = "Order saved!" 
    redirect_to @order 
    end 
end 
관련 문제