我想检查用户是否存在于我的UserController的显示动作中。如果用户不存在,则应将当前用户重定向到其在个人资料页面上(通过显示操作(。问题是它会一次又一次地重定向到浏览器停止。
如果我不使用 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
所以我希望浏览器中的正确路径和如果用户不存在,将显示当前用户。要么有错误的路径显示正确的用户,要么有一个Infitine循环。
可能是逻辑正确的错误,
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