Я использую Authlogic с аддоном Authlogic-openid (я установил gem ruby-openid и скрипт / плагин устанавливает git: //github.com/rails/open_id_authentication.git) и получаю две ошибки.
Сначала при запуске функционального теста я получаю неопределенный метод openid_identifier? сообщение в строке моего файла new.html.erb при запуске UsersControllerTest. Строка такая:
<% if @user.openid_identifier? %>
При запуске скрипта / консоли я могу получить доступ к этому методу без каких-либо проблем.
Во-вторых, при тестировании функциональности openid и регистрации нового пользователя в моем приложении с помощью openid и использования для этого моей учетной записи blogspot я получаю следующее в моем файле журнала:
Generated checkid_setup request to http://www.blogger.com/openid-server.g
with assocication ...
Redirected to http://www.blogger.com/openid-server.g?openid.assoc_handle=...
NoMethodError (You have a nil object when you didn't expect it!
The error occurred while evaluating nil.call):
app/controllers/users_controller.rb:44:in `create'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
Код в users_controller прост:
def create
respond_to do |format|
@user.save do |result|
if result
flash[:notice] = t('Thanks for signing up!')
format.html { redirect_to :action => 'index' }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
end
Строка с ошибкой: @ user.save do | result | ...
Я чувствую, что упускаю что-то довольно простое, но я слишком долго смотрел на это, потому что не могу найти, что это такое. Я проверил код на эпизодах 160 и 170 Railscasts и в проекте GitHub костей, но ничего не нашел.
Спасибо за помощь, usr