4

设计 Confirmation_url 只产生一个没有域的相对 url,例如:

http://users/confirmation?confirmation_token=...

我试着改变

confirmation_url(@resources, :confirmation_token => @resource.confirmation_token)

confirmation_url(:confirmation_token => @resource.confirmation_token)

但它会产生相同的网址。我升级到设计 2.2.3 但结果相同。导轨 3.1.4

更新: 我已经在我的 production.rb 中设置:

  config.action_mailer.default_url_options = { :host => 'mysubdomain.mysite.com' } 

我尝试设置

    before_filter set_actionmailer_host

    def set_actionmailer_host
      ActionMailer::Base.default_url_options[:host] = request.host_with_port
    end

在应用程序控制器中无济于事(https://github.com/plataformatec/devise/issues/1567

更新: 这发生在开发和生产中。

更新 我不明白为什么 Devise 不使用 app/views/devise/mailer/confirmation_instructions.html.haml 中的模板如果我可以编辑,我可以手动附加主机:'http://mysite.com/' + confirmation_url(... 我尝试设置范围视图设置,但它没有'没有任何效果这是一场灾难,用户无法确认他们的注册:(

4

1 回答 1

8

您可能错过了将默认 url 主机添加到环境配置文件中。当您运行rails g devise:install命令时,您通常会收到这些指令。

# config/environments/development.rb

# Default actiomailer url host (required by devise) 
config.action_mailer.default_url_options = { host: 'myapp.dev' }

您的所有环境都需要此设置。

# config/environments/production.rb

# Default actiomailer url host (required by devise) 
config.action_mailer.default_url_options = { host: 'myproductionapp.com' }
于 2013-03-18T11:43:10.700 回答