2016-05-10 17 views
0

我正在編寫一個電子郵件腳本,並且需要將信息添加到電子郵件中,以瞭解用戶名這可能是一些非常簡單的事情,我只是在看(我「M將不得不留下一些信息出來,由於安全性):從Etc獲取用戶信息不會將信息添加到電子郵件中

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> 

正如你可以看到它的不添加用戶的信息..我不明白瓦特HY?

+0

您定義了'get_user',但它看起來像忘了叫它。 –

+0

@Jordan但是我也定義了一個實例變量'@ esd_user',應該可以在整個程序中訪問嗎? – 13aal

回答

1

您的第一個問題是您從未撥打get_user,因此沒有將值分配給@esd_user,其值爲nil。你的第二個問題是在第四行位置::

def email 
<<-_END_ 
V/R, 
#{puts @esd_user} 
DOL IT ESD 
_END_ 
end 

puts打印出它的參數$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 ESD 
相關問題