我正在尝试使用门卫将oAuth2.0集成到我的rails-api应用程序中。但我一直得到这个错误,“针对ApplicationController的未定义方法`helper_method”,但却找不到一个如何解决它的明确解决方案。 bellow是我的application_controller.rb类,它有helper_method。我正在按照以下链接上的教程,任何帮助将不胜感激。
https://www.sitepoint.com/getting-started-with-doorkeeper-and-oauth-2-0/
class ApplicationController < ActionController::API
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
end
答案 0 :(得分:11)
Andy Gauge的回答是正确的;修复不正确。如果您希望包含Helpers模块,同时仍将应用程序保留为“rails-api”,那么只需包含模块
class ApplicationController < ActionController::API
include ActionController::Helpers
end
答案 1 :(得分:2)
由于API没有视图,因此删除了helper_method
方法。如果要将current_user
方法添加到视图中,请改用ActionController :: Base。
ActionController included Modules on Github.你可以在这里看到,AbstractController :: Helpers不包含在Modules集合中。
在文章所基于的Rails 4中,该方法包含在ActionController :: Helpers中。如APIDock中所示。
解决方法:
#application_controller.rb
class ApplicationController < ActionController::Base