Придумать Omniauth ошибка отсутствует метод? - PullRequest
0 голосов
/ 09 мая 2018

Я получаю эту ошибку: Не удалось найти действие '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? Я что-то пропустил? Я прочесываю целый день.

1 Ответ

0 голосов
/ 09 мая 2018

Обновление: как-то у меня было 2 пользовательских папки в контроллере, но одна была спрятана? Должно быть, все испортилось, когда я вернулся к предыдущему репо прошлой ночью. Как только я удалил папку, все было хорошо!

...