2012-09-29 57 views

回答

2

當然,你可以做到這一點,只需將表單代碼放在你想創建/更新的任何頁面上,它就可以工作。

唯一的問題是在成功或不成功的創建/更新後,動作會將您重定向到的位置:通常從new頁面開始,您將成功重定向到新創建的記錄(show操作)回到失敗時的new操作(帶有表單域中的錯誤)。如果你想創建/更新來自不同頁面的記錄,並在每種情況下將動作重定向到不同的頁面,那麼你只需要做更多的工作。

可能性是在表單中添加一個隱藏參數並將其重定向到動作,然後使動作檢查並相應地重定向。例如:

VALID_REDIRECT_ACTIONS = ["show", "index"] 

def create 
    ... 
    if @photo.save 
    flash[:success] = "Photo successfully created!" 
    if VALID_REDIRECT_ACTIONS.include?(params[:redirect]) 
     redirect_to params[:redirect] 
    else 
     redirect_to @photo 
    end 
    else 
    ... 
    end 
end 
相關問題