NoMethodError при попытке использовать open_id_authentication

В настоящее время я добавляю поддержку входа в систему OpenID для приложения Rails 3.0.0.

Я уже установил ruby-openid (гем) и open_id_authentication (плагин). Однако после выполнения шагов, необходимых для настройки обоих (из README), я все еще получаю эту ошибку:

undefined method `authenticate_with_open_id'

Я попытался найти проблему в Google, но большинство тем, похоже, датируются многолетней давностью и остаются подозрительно без ответа.

Я упускаю что-то очевидное? Что вызывает эту проблему? Обратите внимание, что у меня не было проблем с переключением на файловые хранилища в environment.rb, поэтому я уверен, что плагин установлен правильно.

Обновление: некоторые нерешенные проблемы того же характера:

http://railsforum.com/viewtopic.php?id=23151


person nickname    schedule 16.01.2011    source источник


Ответы (1)


Аналогичная ошибка; как ни странно, у меня это работает на Rails 3.2 в другой ветке, и я не могу понять разницу; во всяком случае, я обнаружил, что продвинулся немного дальше, следуя предложениям здесь: Rails 3.0.9 + open_id_authentication

То есть, добавив строку include OpenIdAuthentication после class SessionsController < ApplicationController:

class SessionsController < ApplicationController
  include OpenIdAuthentication

Но теперь я получаю Completed 401 Unauthorized в своем журнале и вижу пустую страницу - только теги. Фу.

Обновление: О, пошли дальше; Я следил за этим сообщением: open_id_authentication - OpenIdAuthentication.store равен нулю. Использование хранилища в памяти. проблема

и, как они предложили, «добавили инициализатор с именем config/initializers/openid.rb с этим внутри»:

require 'open_id_authentication' # this was needed, but not described in the referred-to post
OpenIdAuthentication.store = :file

Затем меня перенаправили к провайдеру OpenId, и я смог нажать «разрешить», но, вернувшись в свое приложение, теперь вижу:

NoMethodError in SessionsController#create
undefined method `encoding' for nil:NilClass

В любом случае, наконец, я обнаружил проблему с маршрутами отдыха и исправил ее, и теперь вход в систему работает!

person jywarren    schedule 07.01.2015