Estoy tratando de integrar oAuth2.0 en mi aplicación única rails-api, usando doorkeeper. Pero sigo recibiendo este error, "método indefinido` helper_method 'para ApplicationController "y, sin embargo, no pude encontrar una solución clara sobre cómo resolverlo. debajo está mi clase application_controller.rb, que tiene el método helper_method. Estoy siguiendo el tutorial en el enlace a continuación, se agradecerá cualquier ayuda.

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
11
CodeDaily 26 ago. 2016 a las 20:28

2 respuestas

La mejor respuesta

Si bien la respuesta de Andy Gauge es correcta; la corrección es incorrecta. Si desea incluir el módulo Helpers mientras mantiene sus aplicaciones como "rails-api", simplemente incluya el módulo

class ApplicationController < ActionController::API
  include ActionController::Helpers
end
17
TJ Biddle 29 sep. 2016 a las 03:05

Como las API no tienen vista, se eliminó el método helper_method. Si desea agregar su método current_user a una vista, use ActionController :: Base en su lugar.

ActionController incluidos. Módulos en Gith puede ver aquí que AbstractController :: Helpers no está incluido en la colección de Módulos.

En Rails 4, en el que se basa el artículo, el método se incluyó en ActionController :: Helpers. Como se ve en APIDock.

Solución alterna:

#application_controller.rb
class ApplicationController < ActionController::Base
1
Andy Gauge 26 ago. 2016 a las 19:15