我正在嘗試使用需要我訪問通過控制器擴展登錄的當前用戶的gem。這是我的ApplicationController與我的想法應該工作:來自ApplicationController的訪問方法
class ApplicationController < ActionController::Base
helper :all
protect_from_forgery
set_current_tenant_to(current_user.member)
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
def require_user
unless current_user
flash[:notice] = "You must be logged in to access this page"
redirect_to '/login'
return false
end
end
end
這失敗與「爲ApplicationController中未定義的局部變量或方法`CURRENT_USER」:類」的set_current_tenant_to。
有沒有辦法通過控制器擴展來訪問current_user方法?
感謝您的幫助!
約翰嗨, 我已經試過了,以及和得到相同的結果。它不僅發生在我的ApplicationController中,而且發生在我嘗試使用的任何控制器中。 再次感謝! – lundie
您做了更改後是否重新加載?如果控制器位於ApplicationController的「private」塊中,則無法從另一個控制器訪問'current_user' – iwasrobbed
IWasRobbed正確 - 需要重新加載它。所有其他控制器* do *從ApplicationController繼承,對吧? –