ApplicationController 的未定义方法“helper_method”,Rails 5
undefined method `helper_method' for ApplicationController, Rails 5
我正在尝试将 oAuth2.0 集成到我的 rails-api 应用程序中,使用门卫。但是我不断收到此错误,"undefined method `helper_method' for ApplicationController",但仍找不到明确的解决方案。下面是我的 application_controller.rb class,其中有 helper_method。我正在关注下面的 link 教程,如有任何帮助,我们将不胜感激。
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
因为 API 没有视图,所以 helper_method
方法已被删除。如果您想将 current_user
方法添加到视图,请改用 ActionController::Base。
ActionController included Modules on Github. 您可以在这里看到 AbstractController::Helpers 未包含在模块集合中。
在文章所依据的Rails4中,该方法被包含在ActionController::Helpers中。正如在 APIDock.
中看到的
解决方法:
#application_controller.rb
class ApplicationController < ActionController::Base
Andy Gauge 的回答是正确的;修复不正确。如果您想包含 Helpers 模块,同时仍将您的应用程序保持为 "rails-api",那么只需包含模块
class ApplicationController < ActionController::API
include ActionController::Helpers
end
我正在尝试将 oAuth2.0 集成到我的 rails-api 应用程序中,使用门卫。但是我不断收到此错误,"undefined method `helper_method' for ApplicationController",但仍找不到明确的解决方案。下面是我的 application_controller.rb class,其中有 helper_method。我正在关注下面的 link 教程,如有任何帮助,我们将不胜感激。
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
因为 API 没有视图,所以 helper_method
方法已被删除。如果您想将 current_user
方法添加到视图,请改用 ActionController::Base。
ActionController included Modules on Github. 您可以在这里看到 AbstractController::Helpers 未包含在模块集合中。
在文章所依据的Rails4中,该方法被包含在ActionController::Helpers中。正如在 APIDock.
中看到的解决方法:
#application_controller.rb
class ApplicationController < ActionController::Base
Andy Gauge 的回答是正确的;修复不正确。如果您想包含 Helpers 模块,同时仍将您的应用程序保持为 "rails-api",那么只需包含模块
class ApplicationController < ActionController::API
include ActionController::Helpers
end