我设置了Devise并且能够创建个人资料。当我创建配置文件并尝试登录时,收到一条错误消息,表明我尚未确认我的帐户,
我从未收到过我应该确认自己帐户的电子邮件。我选择这样的选项出错了,还是没让Devise给我发电子邮件?
以下是我过去的迁移:
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users, :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8') do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
t.confirmable
t.encryptable
t.column "first_name", :string
t.column "last_name", :string
t.column "organization_name", :string
t.timestamps
end
add_index :users, :email, :unique => true
end
def self.down
drop_table :users
end
end
答案 0 :(得分:15)
在开发模式下,您必须将此行添加到config/environments/development.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
然后,检查服务器日志以查看邮件。你应该找到类似的东西:
渲染了devise / mailer / confirmation_instructions.html.erb(19.5ms)
发送邮件至example@mail.com(21951ms)
日期:2011年5月26日星期四12:56:55 +0200
发件人:sender@mail.com
回复:sender@mail.com
收件人:example@mail.com
消息ID:&lt; 4dde31f7944bd_5ac277e0e4785c6@L-Portable.mail>
主题:确认说明
Mime-Version:1.0
内容类型:text / html;
的charset = UTF-8
Content-Transfer-Encoding: 7bit
<p>Welcome example@mail.com!</p>
<p>You can confirm your account through the link below:</p>
<p><a href="http://localhost:3000/users/confirmation?confirmation_token=Hi0tyRQU8cCFpAbatYFf">Confirm my account</a></p>
您还需要将此行放在config/initializers/devise.rb
config.mailer_sender = "sender@mail.com"
如果真的在您的日志中没有此邮件,您仍然可以通过在数据库中获取confirmation_token
的值来验证您的帐户并转到此链接
http://localhost:3000/users/confirmation?confirmation_token= #PUT_YOUR_TOKEN_HERE
这应该可以解决问题。
干杯