authenticate_user!法的设计实施在哪里?

我一直在找,到目前为止还没有找到.

推荐答案

它位于lib/devise/controllers/helpers.rb1中,是动态生成的(用户只是可能的后缀之一):

def self.define_helpers(mapping) #:nodoc:
    mapping = mapping.name

    class_eval <<-METHODS, __FILE__, __LINE__ + 1
      def authenticate_#{mapping}!(opts={})
        opts[:scope] = :#{mapping}
        warden.authenticate!(opts) if !devise_controller? || opts.delete(:force)
      end

      def #{mapping}_signed_in?
        !!current_#{mapping}
      end

      def current_#{mapping}
        @current_#{mapping} ||= warden.authenticate(:scope => :#{mapping})
      end

      def #{mapping}_session
        current_#{mapping} && warden.session(:#{mapping})
      end
    METHODS

    ActiveSupport.on_load(:action_controller) do
      helper_method "current_#{mapping}", "#{mapping}_signed_in?", "#{mapping}_session"
    end
  end

Ruby-on-rails相关问答推荐

为什么这个rails Collection_select不呈现关联属性?

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

RSpec系统测试无法从工厂访问新创建的记录

Ruby on Rails 中的多种布局

ruby on rails 中的自定义关联

GroupingError:错误:列必须出现在 GROUP BY 子句中或在聚合函数中使用

Rails 将字符串与视图中的变量连接的最佳方法

向现有控制器添加操作(Ruby on Rails)

Time.zone.now.to_date 是否等同于 Date.today?

具有条件的列的计数器缓存?

Rails:设计:按角色登录后重定向

Rails - 使用 %W

在 PostgreSQL 中强制字符串的最大长度

如何拯救 OmniAuth::Strategies::OAuth2::CallbackError?

Ruby 和 Ruby on Rails 离线 API 文档

RubyMine - 关闭在空行中间单击的功能

如何打印出范围之间的随机数?

保存用户偏好的最佳方法?

如何为 Rails 控制器添加延迟以进行测试?

如何删除删除选项表单 activeAdmin?