當更新我的模型時出錯時,我正在渲染:編輯,但這是從我的url中剝離/edit
,因爲#update
與#show
具有不同的請求方法。爲了解決這個問題,我試着按照給出的建議here,但是當我嘗試提交無效表單時,這導致我得到一個ActionDispatch::Cookies::CookieOverflow
錯誤。我應該如何正確地重新呈現編輯頁面,同時保持url和flash消息的/edit
?是否可以檢查有效性並顯示錯誤而無需致電更新?保持模型在重定向編輯時出現錯誤
原始代碼:
def edit
end
def update
respond_to do |format|
format.html do
if @model.update(model_params)
redirect_to home_base_url_or_default(model_url(@model)), notice: "Successfully updated."
else
render :edit
end
end
end
end
失敗代碼:
def edit
if flash[:model]
@model = flash[:model]
end
end
def update
respond_to do |format|
format.html do
if @model.update(model_params)
redirect_to home_base_url_or_default(model_url(@model)), notice: "Successfully updated."
else
flash[:model] = @model
redirect_to :action => :edit
end
end
end
end
rails中的CookieStore大小爲4KB。只要超出限制,就會引發錯誤。我鼓勵你檢查這個[鏈接](http://stackoverflow.com/questions/9473808/cookie-overflow-in-rails-application)。也許它會有所幫助 –