在Rail 3中使用动作邮件时,不会出现完整的URL?

时间:2015-03-30 10:37:19

标签: ruby ruby-on-rails-3 email

我正在尝试使用Ruby on Rails在我的应用程序中实现重置密码功能。我正在使用动作邮件程序向用户的电子邮件发送链接。电子邮件正在通过链接传递给用户,但是当用户点击该链接时链接完整的URL没有到来(即 - " localhost:3000 / homes / resetpass")。只有" / homes / resetpass"即将到来。请检查我的以下代码并帮助我解决此问题。

的观点/ user_mailer文件/ registration_confirmation.html.erb

<p><%= @users.first_name %>,</p>

<p>Thank you for registering!</p>

<p>Edit Your Password <%= link_to "Click Here",homes_resetpass_path(:id => @users.id ),:host => "localhost:3000" %></p>

寄件人/ user_mailers.rb

class UserMailer < ActionMailer::Base
  default from: "rajatpradhan474@gmail.com"
  def registration_confirmation(user)  
  @users = user  
  mail(:to => user.email, :subject => "Registered")  
end  
end

配置/初始化/为setup_mail.rb

ActionMailer::Base.smtp_settings = {  
  :address              => "smtp.gmail.com",  
  :port                 => 587,  
  :domain               => "gmail.com",  
  :user_name            => "rajatpradhan474@gmail.com",  
  :password             => "**********",  
  :authentication       => "plain",  
  :enable_starttls_auto => true  
} 
ActionMailer::Base.default_url_options[:host] = "localhost:3000"  

1 个答案:

答案 0 :(得分:0)

您需要使用url_for而不是link_to。链接页面描述了方式和原因。