Я получаю эту ошибку:
Не удалось найти действие 'github' для пользователей :: OmniauthCallbacksController
Я искал повсюду и пробовал другие предложения на постах других людей.
Это было сообщение о переполнении стека, но у них была опечатка, и у меня не было той же ошибки.
Разработать OmniauthsController не используется
В этой рекомендации говорится о проверке рейковых маршрутов, но мои маршруты соответствуют тому, на что я указываю.
https://github.com/plataformatec/devise/issues/1566
Большинство других ссылок были похожими, и я дважды проверил информацию с моей, изменил материал и все еще получаю ошибки.
Информация о моем коде.
Gemfile:
gem 'omniauth-github'
конфиг / routes.rb:
devise_for :users, :controllers => { :omniauth_callbacks => 'users/omniauth_callbacks' }
Пользователи :: OmniauthCallbacksController:
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def github
@user = User.from_omniauth (request.env ["omniauth.auth"])
если @ user.persisted?
sign_in_and_redirect @user, событие :: аутентификация
set_flash_message (: note,: success, kind: "Github"), если is_navigational_format?
еще
redirect_to root_path
конец
конец
конец
Модель пользователя:
devise :database_authenticatable, :registerable,
: восстанавливаемый,: запоминаемый,: отслеживаемый,: проверяемый,: универсальный,: omniauth_providers => [: github]
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.uid = auth.uid
user.provider = auth.provider
user.password = Devise.friendly_token[0, 20]
user.name = auth.info.name #assuming the user model has a name
user.oauth_token = auth.credentials.token
user.image = auth.info.image #assuming the user model has an image
user.save!
end
конец
Разработать инициализатор:
config.omniauth :github, Rails.application.secrets.github_client_id, Rails.application.secrets.github_client_secret, scope: 'user:email'
Не уверен, что делать, так как у меня есть метод в контроллере Users :: OmniauthCallBacks? Я что-то пропустил? Я прочесываю целый день.