单引号字符串字符串插值

DMH*_*DMH 6 ruby ruby-on-rails actionmailer string-interpolation

我正在尝试使用Rails在ActionMailer中设置电子邮件地址.在硬编码之前,我们现在想让它们成为ENV变量,这样我们就不需要在每次电子邮件更改时修改代码.

以下是它目前的定义:

from = '"Name of Person" <email@email.com>'
Run Code Online (Sandbox Code Playgroud)

我已经尝试将电子邮件设置为环境变量使用,ENV['EMAIL']但我甚至没有运气#{ENV['EMAIL'}.

谁能指出我正确的方向?

MrY*_*iji 9

你不能在Ruby中使用单引号字符串的字符串插值.

但双引号字符串可以!

from = "'Name of Person' <#{ENV['EMAIL']}>"
Run Code Online (Sandbox Code Playgroud)

但是如果你想保留你的双引号Name of Person,你可以用反斜杠来逃避它们\:

from = "\"Name of Person\" <#{ENV['EMAIL']}>"
Run Code Online (Sandbox Code Playgroud)

或者使用字符串连接:

from = '"Name of Person" <' + ENV['EMAIL'] + '>'
# but I find it ugly
Run Code Online (Sandbox Code Playgroud)


Mor*_*ori 6

如果要在插值字符串中嵌入双引号,可以使用%表示法分隔符(Ruby从Perl中删除),例如

from = %|"Name of Person", <#{ENV['EMAIL']}>|
Run Code Online (Sandbox Code Playgroud)

要么

from = %("Name of Person", <#{ENV['EMAIL']}>)
Run Code Online (Sandbox Code Playgroud)

只需%在字符串中没有分隔符后选择一个分隔符.