Tôi có tuyến đường RESTful điển hình cho một người sử dụng:Thực hành tốt nhất định tuyến RESTful khi tham chiếu current_user từ tuyến đường?
/user/:id
/user/:id/edit
/user/:id/newsfeed
Tuy nhiên con đường /user/:id/edit
chỉ có thể được truy cập khi id bằng id của CURRENT_USER. Vì tôi chỉ muốn current_user có quyền truy cập để chỉnh sửa hồ sơ của nó. Tôi không muốn người dùng khác có thể chỉnh sửa tiểu sử không thuộc về họ.
Phương pháp hay nhất để xử lý tình huống này là gì?
Tôi có nên thoát khỏi tuyến đường và thông qua lỗi nếu current_user.id != param[:id]
, buộc ứng dụng khách kết thúc cuộc gọi gọi api để theo dõi id của người dùng đã đăng nhập không?
Tôi có nên thực hiện tuyến đường đặc biệt /user/self/edit
và trong bộ điều khiển để kiểm tra xem param[:id] == 'self'
?
Các đường ray tiêu chuẩn cách sẽ được kiểm tra id đối với người dùng hiện tại trong before_filter/before_action hoặc làm anwer được chấp nhận và tải tài nguyên dựa trên current_user – engineerDave