#ruby-on-rails #ruby #omniauth
#ruby-on-rails #ruby #omniauth
Вопрос:
Я использую драгоценный камень OmniAuth в своем приложении Rails, чтобы позволить пользователям добавлять свою учетную запись Facebook в приложение, и я следую руководству Райана Бейтса, но я продолжаю получать эту ошибку Rails.
неопределенная локальная переменная или метод `authentications_url’ для #
Вот контроллер для аутентификации:
class AuthenticationsController < ApplicationController
def index
@authentications = current_user.authentications if current_user
end
def create
auth = request.env["omniauth.auth"]
current_user.authentications.find_or_create_by_provider_and_uid(auth['provider'],auth['uid'])
flash[:notice] = "Authentication successful."
redirect_to authentications_url
end
def destroy
@authentication = current_user.authentications.find(params[:id])
@authentication.destroy
flash[:notice] = "Successfully destroyed authentication."
redirect_to authentications_url
end
завершение
Ответ №1:
Ваша ошибка сообщает вам, что ваш маршрут не существует. Запустите rake routes
в командной строке и посмотрите, есть ли у вас authentications
маршрут
Из версии ASCIIcasts этого эпизода ваш config/routes.rb
файл должен выглядеть примерно так:
ProjectManage::Application.routes.draw do |map|
match '/auth/:provider/callback' => 'authentications#create'
devise_for :users
resources :projects
resources :tasks
resources :authentications # <-- This is the one you're missing
root :to => 'projects#index'
end
Комментарии:
1. Спасибо! Это мне очень помогло.
2. Рад это слышать, пожалуйста, примите ответ, поставив галочку, если он ответил на ваш вопрос