很遺憾挠乳,在學(xué)習(xí)rails一個月后才在一個blog平臺上寫上學(xué)習(xí)的得失體驗,決定以后每天一篇日記。
今天的收獲是了解了render和redirect to的用法:
看user控制器創(chuàng)建新用戶的代碼:
def create
@user = User.new(user_params)
if @user.save
flash[:notice] = 'Created user successfully!'
sign_in @user
redirect_to user_path(@user)
else
render :new
end
end
if @user.save創(chuàng)建用戶成功后欲侮,使用redirect_to跳轉(zhuǎn)到show這個action,那么即使用戶重復(fù)刷新注冊頁面崭闲,用戶只會跳出當(dāng)前注冊頁面并提交一次注冊信息(redirect_to會向服務(wù)器發(fā)出請求),而render則會因為沒有向服務(wù)器發(fā)起請求而保存上一次保存提交的信息并且導(dǎo)致重復(fù)提交相同的信息到服務(wù)器威蕉。
render :new創(chuàng)建用戶失敗后刁俭,使用render加載new模板,會因為沒有向服務(wù)器發(fā)起請求而保存上一次保存提交的信息,用戶就不會因為注冊失敗而丟失上次提交的信息,所以用戶可以重新編輯信息而不需要重新從頭填寫韧涨。