我在一个Rails 3应用程序中使用了Devise。我正试图让Devise和邮件发送器一起工作。目前的情况是,当我输入一个默认的Gmail帐户电子邮件地址时,它会将我重定向回“登录”页面,并给我一个提示:“我很快就会收到说明”,但这些说明并没有被发送。我遇到了一个与RubyForum上发布的某人相同的问题。我阅读了这篇文章,但没有得到任何帮助。我的config/environment/development.rb文件如下:
Project::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the webserver when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
#SMTP
config.action_mailer.default_url_options = { :host => 'localhost' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => 'k0903421@gmail.com',
:password => '',
:authentication => 'plain',
:enable_starttls_auto => true }
end
我有点不明白。
当我被重定向回登录页面时,控制台会显示:
Sent mail to k0903421@gmail.com (30181ms)
Date: Thu, 15 Sep 2011 14:48:06 +0100
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: k0903421@gmail.com
Message-ID: <4e720216bf59b_3b215d477ae963de@dj.mail>
Subject: Reset password instructions
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<p>Hello k0903421@gmail.com!</p>
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
<p><a href="http://localhost/users/password/edit?reset_password_token=fqJXk6JbotIxIv3Awq1s">Change my password</a></p>
<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
Redirected to http://0.0.0.0:3000/login
Completed 302 Found in 32658ms
Started GET "/login" for 127.0.0.1 at 2011-09-15 14:48:36 +0100
Processing by Devise::SessionsController#new as HTML
SQL (0.7ms) describe `roles_users`
SQL (0.9ms) describe `roles_users`
Rendered layouts/_stylesheets.html.erb (0.9ms)
Rendered layouts/_javascripts.html.erb (1.6ms)
Rendered layouts/_header.html.erb (0.8ms)
Rendered layouts/_logo.html.erb (0.7ms)
Rendered layouts/_errors.html.erb (1.8ms)
Rendered devise/sessions/new.html.erb within layouts/application (62.0ms)
Completed 200 OK in 150ms (Views: 68.9ms | ActiveRecord: 1.6ms)
Devise密码控制器
def create
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
if successful_and_sane?(resource)
set_flash_message(:notice, :send_instructions) if is_navigational_format?
respond_with({}, :location => after_sending_reset_password_instructions_path_for(resource_name))
else
respond_with_navigational(resource){ render_with_scope :new }
end
end
Devise::PasswordsController#create中的Timeout::Error执行超时
。 - Deejapp/controllers/devise/passwords_controller.rb:17:in
create'`,这意味着我的devise控制器中的创建方法存在问题。 - Deej