我想在用户注册时发送确认邮件。
我正在使用设计并生成设计视图来修改它们
File is /app/views/devise/mailer/confirmation_instructions.html.erb
<% url = "#{ENV['ROOT_APP_URL']}/#/confirm/#{@token}" %>
<p>Welcome <%= @email %>!</p>
<p>You can confirm your account email through the link below:</p>
<%= url %>
<a href="<%= url %>">Confirm My Account </a>
问题是最后一行的输出是
<a>Confirm My Account</a>
同时,<%= url %>
之前的行输出localhost:9001/#/confirm/XxyJGz
。
我尝试使用raw
帮助程序,但结果相同
我编写的片段和输出
ERB
<% url = "#{ENV['ROOT_APP_URL']}/#/confirm/#{@token}" %>
<p>Welcome <%= @email %>!</p>
<p>You can confirm your account email through the link below:</p>
<%= url %>
<a href="<%= url %>">Confirm My Account</a>
<% foo = "localhost:9001/#/confirm/XxyJGz" %> followed by <a href="<%= foo %>">Foo</a>
HTML
<p>Welcome user@email.com</p>
<p>You can confirm your account email through the link below:</p>
localhost:9001/#/confirm/NLirkXqjNq5dfwDti8Lc
<a target="_blank" class="">Confirm My Account</a>
followed by <a target="_blank">Foo</a>
答案 0 :(得分:1)
作为一个绝对的网址,应该有一个协议。因此,您的url
变量应以"http://"
或"https://"
第二件事是,你可以使用普通的link_to助手。
您必须在环境文件中指定config.action_mailer.default_url_options
(因此您可以指向开发环境中的localhost:9001和生产中的生产URL)。
这可以通过以下方式完成:
config/environments/development.rb
config.action_mailer.default_url_options = { host: 'localhost:9001' }
和你的
config/environments/production.rb
config.action_mailer.default_url_options = { host: 'your-domain.com' }
然后在您的观点中,您应该可以使用
<%= link_to confirmation_instructions_url(token: @token) %>
或者你的url_helper被调用的任何东西。
请注意,网址助手调用必须以_url
结尾,而不是_path
,因为