我正在尝试在Rails中使用ActionMailer设置电子邮件地址。以前是硬编码的,但现在我们想要将它们设置为环境变量,这样每次更改电子邮件时就不需要修改代码了。
以下是当前定义方式:
from = '"Name of Person" <email@email.com>'
我尝试使用ENV['EMAIL']
将电子邮件设置为环境变量,但即使使用#{ENV['EMAIL'}
也没有成功。
有人能指点我方向吗?
我正在尝试在Rails中使用ActionMailer设置电子邮件地址。以前是硬编码的,但现在我们想要将它们设置为环境变量,这样每次更改电子邮件时就不需要修改代码了。
以下是当前定义方式:
from = '"Name of Person" <email@email.com>'
我尝试使用ENV['EMAIL']
将电子邮件设置为环境变量,但即使使用#{ENV['EMAIL'}
也没有成功。
有人能指点我方向吗?
在Ruby中,不能使用单引号的字符串插值。
但是双引号的字符串可以!
from = "'Name of Person' <#{ENV['EMAIL']}>"
但是如果你想保留双引号包裹“人名”,你可以用反斜杠\
进行转义:
from = "\"Name of Person\" <#{ENV['EMAIL']}>"
或者使用字符串拼接:
from = '"Name of Person" <' + ENV['EMAIL'] + '>'
# but I find it ugly
'"Name of Person" <' ENV['EMAIL'] '>'
也可以工作。但是,我建议使用MrYoshiji提供的第一个/第二个示例。 - mmlnfrom = %|"Name of Person", <#{ENV['EMAIL']}>|
from = %("Name of Person", <#{ENV['EMAIL']}>)
%
后选择一个在您字符串中不存在的分隔符。你也可以使用 format
。我在Ruby中没有看到它像其他语言(例如C,Python)那样常见,但它同样有效:
from = format('"Name of Person", <%s>', ENV["EMAIL"])
from = '"Name of Person", <%s>' % ENV["EMAIL"]
format
(又名sprintf
)的文档:。