Я следовал учебнику Райана Бейтса / RailsCasts для входа в систему с помощью файлов cookie и напоминал мне о функциональности приложения, которое я создаю.
[ссылка: http://railscasts.com/episodes/274-remember-me-reset-password?view=comments]
Я хотел представить его функциональность OmniAuth для того же приложения.
[ссылка: http://railscasts.com/episodes/235-omniauth-part-1]
Я не использую устройство. Я правильно загружаю страницу приложения Twitter, ошибка возникает при перенаправлении обратно в мое приложение. У меня правильно установлен URL-адрес для обратного вызова в Twitter.
Я получаю undefined method "authentications" for nil:NilClass
ошибку с OmniAuth и моим authentications_controller. В частности, моя консоль гласит:
NoMethodError (undefined method authentications for nil:NilClass):app/controllers/authentications_controller.rb:9:in create'.
Вот код контроллера аутентификации:
class AuthenticationsController < ApplicationController
def index
authentications = Authentication.all
end
def create
auth = request.env["omniauth.auth"]
current_user.authentications.create(:provider => auth['provider'], :uid => auth['uid'])
flash[:notice] = "Authentication was successful."
redirect_to authentications_url
end
Вот вспомогательный метод current_user в моем контроллере приложений.
private
def current_user
@current_user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
end
helper_method :current_user
У пользователя много аутентификаций.
Аутентификации принадлежат пользователю.
Я бы хотел, чтобы OmniAuth работал с Twitter, чтобы пользователи могли войти в систему со своей учетной записью Twitter, чтобы избежать ошибки, получаемой при сохранении кода current_user
Помощь приветствуется.