Tôi đã làm một before_filter
nơi tôi kiểm tra xem request.path == root_path
và nếu như vậy tôi chuyển hướng đến con đường mà nên là root sử dụng cụ thể. Tập tin root_path được đặt trong routes.rb
không phải là gốc của người dùng cụ thể cho bất kỳ người dùng nào, do đó không có chuyển hướng vô hạn. Chỉ cần thực hiện flash.keep
để làm cho tin nhắn flash của bạn tồn tại trong chuyển hướng.
CHỈNH SỬA: Đọc Q & A và nhận xét, cố gắng hiểu những gì bạn đã có và những gì bạn vẫn cần. Bạn có thành công thiết lập định tuyến để nhận được hành động show
được hiển thị mà không cần :id
trong URL không? Nếu có thể bạn cần một cái gì đó như thế này trong bộ điều khiển của bạn show
hành động:
if params[:id].nil? # if there is no user id in params, show current one
@user = current_user
else # if there is the user id in params just use it,
# maybe get 'authorization failed'
@user = User.find params[:id]
end
Chắc chắn có một cách quyến rũ để làm điều này trong Rails 4+ so với những gì được đề nghị. –