我正在编写一个电子邮件脚本,需要在电子邮件中添加有关用户名的信息--这可能是非常简单的事情,我只是忽略了(由于安全原因,我不得不删除一些信息):
def get_user
user = Etc.getlogin
@esd_user = user.split('_').first.capitalize + ' ' + user.split('_').last[0].upcase
end
def pend
#-< Pending emails >-#
email = <<-_END_
V/R,
#{@esd_user}
DOL IT ESD
_END_
#copy(email)
end在@esd_user部分,它没有正确地添加用户信息示例:
irb(main):004:0> def get_user
irb(main):005:1> user = Etc.getlogin
@esd_user = user.split('_').first.capitalize + ' ' + user.split('_').last[0].upcase
irb(main):007:1> end
=> :get_user
irb(main):008:0> def email
irb(main):009:1> <<-_END_
irb(main):010:1" V/R,
irb(main):011:1" #{puts @esd_user}
irb(main):012:1" DOL IT ESD
irb(main):013:1" _END_
irb(main):014:1> end
=> :email
irb(main):015:0> email
=> "V/R,\n\nDOL IT ESD\n"
irb(main):016:0>正如您所看到的,它没有将用户添加到信息中。我不明白为什么?
发布于 2016-05-10 16:32:08
第一个问题是,您从不调用get_user,因此没有为@esd_user分配任何值,其值为nil。第二个问题在第四行:
def email
<<-_END_
V/R,
#{puts @esd_user}
DOL IT ESD
_END_
endputs将其参数打印到$stdout并返回nil。您希望将@esd_user的值插入到该行的字符串中。你不想在那条线上印任何东西。摆脱puts
def email
<<-_END_
V/R,
#{@esd_user}
DOL IT ESD
_END_
end
@esd_user = "foobar"
puts email
# -> V/R
# foobar
# DOL IT ESDhttps://stackoverflow.com/questions/37142702
复制相似问题