Rails 3 - 在生成确认电子邮件时更改设计主机

时间:2011-08-24 13:31:02

标签: ruby-on-rails ruby-on-rails-3 devise actionmailer

由于我的应用程序使用子域名,我需要在注册过程中获取用户所在的子域名。这可以使用request.subdomain或我的自定义方法current_subdomain进行,并适用于所有应用。

但是它永远不会出现在Devise身上。我的最后一次尝试覆盖了RegistrationsController但没有成功。

class RegistrationsController < Devise::RegistrationsController
  def new
    @subdomain = current_subdomain
    puts @subdomain + " ON NEW"
    resource = build_resource({})
    respond_with_navigational(resource, @subdomain){ render_with_scope :new }
    #super
  end

  def create
    @subdomain = current_subdomain
    puts @subdomain + " ON CREATE"
    super
  end
end

并非puts在此过程中完美运作。

电子邮件上生成的链接位于默认的Devise视图中,我的配置如下:

<p><%= link_to 'Confirm!', confirmation_url(@resource, :confirmation_token =>
@resource.confirmation_token, :host => @subdomain+".lvh.me:3000") %></p>

像往常一样,它说我的子域名是零。我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

在设计维基中有一篇关于此的wiki文章:

How To: Send emails from subdomains

Devise使用ActionMailer配置,而您的代码不会影响这些。