0
Render action trong Rails controller
E có 1 routes dạng như thế này:
get "/:username/edit" => "users#edit", as: :edit_user
Khi update user lỗi và muốn render lại action edit với đúng url là /username/edit nhưng hiện tại nó sẽ nhận action dạng resful /users/1
def update
if current_user.update_attributes(user_param)
redirect_to show_user_path(username: current_user.username)
else
render :edit
end
end
Ai có kinh nghiệm về vấn đề này chỉ giúp e với ạ, e xin cảm ơn.
Thêm một bình luận
3 CÂU TRẢ LỜI
+5
Có 2 cách:
- redirect đến /username/edit. Sẽ phải lưu tại thời params vào session để render lại form
- để luôn URL của action update là POST /username/edit. Cách này sẽ phá vỡ quy tắc RESTFUL
0
Không hiểu bạn muốn hỏi điều gì. Làm gì có render action, chỉ có render view thôi. Làm như bạn nó sẽ render view của action edit nhưng URL không thay đổi, muốn quay trở lại trang cũ với URL cũ thì sử dụng redirect_to :back