Привратник new_oauth_application_path не найден

Я тестирую новые рельсы 5 API. Я хочу создать сервер oauth2, потребляемый клиентом js.

Я использую Doorkeeper для управления сервером oauth2.

В моих маршрутах.rb у меня есть

Rails.application.routes.draw do
    use_doorkeeper
end

привратник.рб

resource_owner_authenticator do
  User.find_by_id(session[:user_id]) || redirect_to(new_user_session_url)
end

Когда я перехожу к 'http://localhost:3000/oauth/applications', я получаю сообщение об ошибке:

ActionView::Template::Error (undefined local variable or method `new_oauth_application_path' for #<#<Class:0x007fbf1f70c908>:0x007fbf1f72f8b8>)

Привратник не полностью функционален с направляющими 5 ? Если нет, то знаете ли вы какую-нибудь жемчужину вроде Привратника?

Я вручную создаю маршруты в route.rb

Примеры:

  get '/oauth/applications/:id(.:format)', to: 'doorkeeper/applications#show', as: 'edit_oauth_application'
  get '/oauth/applications(.:format)', to: 'doorkeeper/applications#index', as: 'root'

И теперь у меня есть "неопределенный метод `flash'".


person Sancho    schedule 20.04.2016    source источник
comment
повезло с этим? Здесь та же ошибка   -  person Mohamed El Mahallawy    schedule 26.04.2016


Ответы (2)


Я наткнулся на эту же проблему, пытаясь использовать привратник в приложении только для API Rails 5.

Изменение моего предка ApplicationController на ActionController::Base, как предлагалось ранее, у меня не сработало. Покопавшись немного глубже, я нашел решение.

Короткий ответ: doorkeeper не предназначен для работы только с приложениями API, как вы можете видеть здесь и здесь.

То, как мне удалось заставить это работать, заключалось в том, чтобы снова включить все промежуточное программное обеспечение и помощники, которые отключает опция api-only для Rails 5...

Короче говоря, добавление

require "sprockets/railtie"

в верхней части config/application.rb и установка

config.api_only = false

в том же файле, привратник загружается, как и ожидалось.

Несмотря на то, что теперь ваше приложение загружает кучу промежуточного программного обеспечения, ранее удаленного, функциональность API сохраняется, а контроллеры по-прежнему легковесны, поскольку они все еще наследуются от ActionController::API.

person jvrsgsty    schedule 28.11.2016
comment
Мое приложение Rails не генерировало токены API после обновления версии Rails до 5.2. Добавление config.api_only = false в config/application.rb решило проблему! - person Aleksandar Terziev; 30.01.2019

Я меняю ActionController::API на ActionController::Base, чтобы он работал.

person Sancho    schedule 27.04.2016