Я успешно использую Authlogic, и я пытаюсь добавить пользователей для сброса их пароля на using this tutorial. Когда я отправить запрос (в PasswordResetsController # создать действие) для сброса пароля я получаю эту ошибку:Authlogic Password_Reset TypeError (не может преобразовать nil в String)
TypeError (can't convert nil into String):
app/models/user.rb:19:in `deliver_password_reset_instructions!'
app/controllers/password_resets_controller.rb:12:in `create'
Я через учебник несколько раз, а также прочешут в sample app of it here. Я не могу понять, что происходит. У кого-нибудь есть опыт/направление на эту реализацию и ошибку?
Вот полный выходной разъем:
Processing PasswordResetsController#create (for 127.0.0.1 at 2010-11-11 11:32:19) [POST]
Parameters: {"commit"=>"Reset my password", "authenticity_token"=>"G2dtgfJJktJN7iX1FWPHvG5wjLKkIXEIZvJ72+zfSIk=", "email"=>"[email protected]"}
User Load (0.4ms) SELECT * FROM "users" WHERE ("users"."email" = '[email protected]') LIMIT 1
User Update (0.3ms) UPDATE "users" SET "updated_at" = '2010-11-11 17:32:19', "perishable_token" = 'uu_LhCF77GCNbzYfHb2v' WHERE "id" = 1
TypeError (can't convert nil into String):
app/models/user.rb:19:in `deliver_password_reset_instructions!'
app/controllers/password_resets_controller.rb:12:in `create'
Rendered rescues/_trace (129.1ms)
Rendered rescues/_request_and_response (0.3ms)
Rendering rescues/layout (internal_server_error)
User.rb
def deliver_password_reset_instructions!
reset_perishable_token!
Notifier.deliver_password_reset_instructions(self)
end
Update: Я использую рельсы 2.3.8 и 1.8.7 рубин
Обновление: Notifier.rb
default_url_options[:host] = "foobar.com"
def password_reset_instructions(user)
subject "Password Reset Instructions"
from "foobar"
recipients user.email
sent_on Time.now
body :edit_password_reset_url => edit_password_reset_url(user.perishable_token)
end
Update: Вот /views/notifier/password_rest_instruction.erb
A request to reset your password has been made. If you did not make this request, simply ignore this email. If you did make this request just click the link below:
<%= @edit_password_reset_url %>
If the above URL does not work try copying and pasting it into your browser. If you continue to have problem please feel free to contact us.
Возможно, проблема в шаблоне? Вы ссылаетесь на переменные экземпляра с нулевыми значениями? – zetetic
Я так не думаю. Я думаю, что он не имеет доступа к скоропортящемуся персонажу правильно. – bgadoci