设计确认_url只生成一个没有域名的相对网址,例如:
http://users/confirmation?confirmation_token=...
我尝试过更改
confirmation_url(@resources, :confirmation_token => @resource.confirmation_token)
到
confirmation_url(:confirmation_token => @resource.confirmation_token)
但它产生相同的网址。我升级到设计2.2.3但结果相同。 Rails 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(...
我尝试设置范围视图设置但它没有任何效果
这是一场灾难,用户无法确认他们的注册:(
答案 0 :(得分:5)
您可能错过了将默认网址主机添加到环境配置文件中。运行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' }