首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Etc获取用户信息并不是将信息添加到电子邮件中

从Etc获取用户信息并不是将信息添加到电子邮件中
EN

Stack Overflow用户
提问于 2016-05-10 15:20:57
回答 1查看 16关注 0票数 0

我正在编写一个电子邮件脚本,需要在电子邮件中添加有关用户名的信息--这可能是非常简单的事情,我只是忽略了(由于安全原因,我不得不删除一些信息):

代码语言:javascript
复制
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部分,它没有正确地添加用户信息示例:

代码语言:javascript
复制
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>

正如您所看到的,它没有将用户添加到信息中。我不明白为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 16:32:08

第一个问题是,您从不调用get_user,因此没有为@esd_user分配任何值,其值为nil。第二个问题在第四行:

代码语言:javascript
复制
def email
<<-_END_
V/R,
#{puts @esd_user}
DOL IT ESD
_END_
end

puts将其参数打印到$stdout并返回nil。您希望将@esd_user的值插入到该行的字符串中。你不想在那条线上印任何东西。摆脱puts

代码语言:javascript
复制
def email
  <<-_END_
V/R,
#{@esd_user}
DOL IT ESD
_END_
end

@esd_user = "foobar"
puts email
# -> V/R
#    foobar
#    DOL IT ESD
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37142702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档