0
我正在執行一個多窗體嚮導,遵循Ryan Bates提供的步驟。創建一個新的記錄是有效的,所以當我編輯記錄時我試圖使用相同的邏輯。但是,我更改的值不會更改 - 當我從第一個表單編輯某些內容時,前進後退,我的編輯不會保存。以下是我的控制器中的代碼:Rails 3 - 多窗體嚮導 - 嘗試編輯記錄不會保存值
def edit
session[:edit] = "Only change the fields you wish to edit"
@demographic = Demographic.find(params[:id])
session[:demographic_params] ||= {}
end
def update
session[:demographic_params].deep_merge!(params[:demographic]) if params[:demographic]
@demographic = Demographic.find(params[:id])
@demographic.current_step = session[:demographic_step]
if params[:back_button]
@demographic.previous_step
elsif @demographic.last_step?
@demographic.update_attributes(params[:demographic])
updated = true
else
@demographic.next_step
end
session[:demographic_step] = @demographic.current_step
if not updated
render "edit"
else
session[:demographic_params] = session[:demographic_step] = nil
flash[:notice] = "Entry entered successfully"
redirect_to demographic_path
end
end
我應該更改哪些內容以允許保存編輯?
有沒有想過如何將它保存在每一步? – ZMorek
@ZMorek對於遲到的回覆感到抱歉,但是我做了Gabriel所做的工作。 – TheDude