2014-10-29 79 views
0

我在頁面中有一些不連續的4頁的表單。在控制器中存儲不同形式的發佈數據

如果頁面1中的表單1提交,它將從控制器調用一個API,然後它將轉到頁面2,同樣的事情將再次發生在頁面2等等。

最後我想要表單4提交頁面摘要。

如果表單1的值不正確,它將被重定向到帶有預填充提交值的form1頁面等。

我們在表單4提交後將記錄存儲在db中。

API(fedex)返回大量帶散列的數據,這些數據需要保存到提交的最後一個表單中。

在會話中存儲表單數據會很好嗎?

請告知

回答

2

我想你是在談論多步驟形式。詳細tutorail在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 
相關問題