Ruby on rails Rails:如何检查用户是否存在于控制器中,如果不存在,如何重定向到其他站点
我想检查我的UserController的show操作中是否存在用户。如果用户不存在,则应将当前用户重定向到其个人资料页面(通过显示操作)。问题是它会一次又一次地被重定向,直到浏览器停止它 如果我不使用Ruby on rails Rails:如何检查用户是否存在于控制器中,如果不存在,如何重定向到其他站点,ruby-on-rails,Ruby On Rails,我想检查我的UserController的show操作中是否存在用户。如果用户不存在,则应将当前用户重定向到其个人资料页面(通过显示操作)。问题是它会一次又一次地被重定向,直到浏览器停止它 如果我不使用respond_to | format |(因此没有重定向),并且只使用set_user作为user.find(params[:id])的等效项,则浏览器中显示的路径是错误的路径,但它显示的是当前用户 UserController: def show respond_to do |
respond_to | format |
(因此没有重定向),并且只使用set_user作为user.find(params[:id])
的等效项,则浏览器中显示的路径是错误的路径,但它显示的是当前用户
UserController:
def show
respond_to do |format|
if User.exists?(:id)
@user = User.find(params[:id])
format.html
else
set_user
format.html {redirect_to @user, notice: 'User does not exist' }
end
end
end
private
def set_user
@user = current_user
end
因此,如果用户不存在,我希望在浏览器中显示正确的路径和当前用户。
要么是显示正确用户的路径错误,要么是重定向的内联循环。可能是错误逻辑正确
def show
respond_to do |format|
if User.exists?(params[:id])
@user = User.find(params[:id])
format.html
else
set_user
format.html {redirect_to @user, notice: 'User does not exist' }
end
end
end
如果用户找到了该怎么办?
如果用户存在(:id)
这个参数是[:id]?我想你的逻辑不正确。它应该是这样的'temp_user=user.find_by(id:params[:id])@user=temp_user?temp_user:current_user format.html{重定向到@user,注意:'用户不存在'}`@abhishek aravindan谢谢,就是这样。一个愚蠢的错误。你找到解决办法了吗???