redirec_to
通常使用在要讓使用者跳轉頁面的時候,會執行指定頁面的controller action。
而render
則是將指定頁面的樣板拿出來而已,並沒有執行controller。
通常render
的使用時機是讓使用者回到同一個頁面,例如表單填寫不完全時再重回表單填寫頁,這樣做的原因是render會傳模板給使用者,而這個模板在使用者第一次送出表單時就已經被存起來了,所以render同一個模板的時候就會保留剛剛使用者打的表單資料,不用全部重打。
相反的若使用redirect_to
跳轉到同一個表單頁面就會是一個全新的模板,不會有任何送出前填寫的資料,所以適合在跳轉到不同頁面時使用。