【问题标题】:Devise confirmation link is missing domain设计确认链接缺少域
【发布时间】:2013-03-18 11:37:34
【问题描述】:

Devise 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(... 我尝试设置范围视图设置,但没有任何效果 这是一场灾难,用户无法确认他们的注册:(

【问题讨论】:

    标签: ruby-on-rails devise-confirmable


    【解决方案1】:

    您可能错过了将默认 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' }
    

    【讨论】:

    • 在confirmation_url调用中实际设置了:host_only参数,导致问题
    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 2014-11-03
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多