ruby-on-rails-3 - 在哪里覆盖设计 gem 的 current_user 辅助方法

标签 ruby-on-rails-3 authentication ruby-on-rails-3.1 rubygems devise

我如何覆盖设计 gem 的 current_user。
实际上我需要为移动应用程序添加网络服务。

目前的设计是管理网络应用程序的 session 和“当前用户”。

现在移动应用程序将发送 user_id 到服务器。我需要像这样覆盖当前用户

def current_user
  if params[:user_id].blank?
    current_user
  else
    User.find(params[:user_id])
  end   
end

我是否需要将设计 gem 修改为插件?或者是其他东西 ?
请详细解释,因为我是 Rails 新手。

亲切的问候,

最佳答案

根据模块Devise::Controllers::Helpers , current_user (与所有其他设计助手一起)被添加到 ApplicationController,这意味着您可以通过这种方式覆盖它:

# in application_controller.rb

def devise_current_user
  @devise_current_user ||= warden.authenticate(scope: :user)
end

def current_user
  if params[:user_id].blank?
    devise_current_user
  else
    User.find(params[:user_id])
  end   
end

关于ruby-on-rails-3 - 在哪里覆盖设计 gem 的 current_user 辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349606/

相关文章:

ruby-on-rails - rails : Custom validation message

ruby-on-rails-3 - 如何在 Rails 3.2.3 中激活记录缓存

ruby-on-rails - 为不起作用的模型创建种子数据

wcf - 如何为WCF netTcpBinding配置用户名/密码身份验证?

ruby-on-rails - 在我的表单隐藏字段中发送数据

ruby-on-rails - ruby中的异步http请求

python - paramiko 中用于身份验证类型的 get_allowed_auths()

ios - 在 iOS (Swift) 上安装 FirebaseUI 的代码是什么

ruby-on-rails-3.1 - 如何访问 Rails 3.1 中的图像?

ruby-on-rails-3.1 - ActiveRecord::StatementInvalid: PG::Error: ERROR: "id"列中的空值违反了非空约束