我如何覆盖设计 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/