ruby-on-rails - 如果用户未登录,则重定向到登录页面

标签 ruby-on-rails

如果我的用户未登录,我希望将其重定向到登录表单吗?

问题是我不想为每个 Action 都这样做。我知道有一种方法可以只为每个 Controller 定义一次(即,无论 Controller 中的操作如何,都会执行某项操作),但是我不记得怎么做。

最佳答案

使用before_filter。将以下内容放置在您的应用程序 Controller 中。

# application_controller.rb

before_filter :require_login

private

  def require_login
    unless current_user
      redirect_to login_url
    end
  end

上面的代码假定您已定义current_user方法,该方法将在用户登录时返回用户记录。

然后,在您的登录 Controller 中
skip_before_filter :require_login

关于ruby-on-rails - 如果用户未登录,则重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5056451/

相关文章:

jquery - AutoComplete结果显示Rails中的Typeahead中未定义

javascript - 在 Rails 5 中单击浏览器上的后退按钮时,带有 Select2 的表单被复制

ruby-on-rails - 命名范围的 RSpec 和 stub 参数

ruby-on-rails - 无法回滚迁移

ruby-on-rails - 如何在使用 Ruby on Rails 3 的播种过程中避免验证、回调和 'attr_accessible' 影响?

.net - 同时学习多种编程语言会分散注意力吗?

ruby-on-rails - rails gem 安装 pg

ruby-on-rails - 什么是||方法之间是什么意思?

ruby-on-rails - 本地 yaml key 的 i18n 同步

jquery - Rails select2 ajax 标签