Ruby on Rails - 通过操作重定向/渲染不起作用

时间:2012-10-30 21:55:53

标签: ruby redirect action render

我有以下代码:

def isLoggedIn
    if session[:username].nil?
      puts "Not logged in!"
      return render :controller=>"admin", :action=>"login"
    end
  end

以下代码在顶部调用此操作来检查用户的状态。

def view_gallery
    isLoggedIn
       .
       .
       .
       .
      \/
    return render "view_gallery"
  end

我遇到的问题是代码继续执行过去isLoggedIn,尽管控制台正在记录“未登录!”因为正如预期的那样,用户没有登录。这应该呈现一个它不会做的替代布局。如果我错误地操作了动作(比如“logib”),那么就会抱怨缺少模板 - 所以我可以看到它正在运行渲染功能。

如果我将渲染更改为redirect_to和/或将return语句移动到行尾,则会出现同样的情况。

有什么想法吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

Rails指南说要按以下方式执行此操作:

render :controller=>"admin", :action=>"login" and return