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> 

あなたはそれがありません見ることができるように情報にユーザーを追加する..私はwを理解していないハイ?

+0

あなたは 'get_user'を定義しましたが、あなたはそれを呼び出すのを忘れたようです。 –

+0

@ Jordanしかし、私はインスタンス変数 '@ esd_user'を定義しました。プログラム全体からアクセスできるはずです。 – 13aal

答えて

1

最初の問題は、get_userを決して呼ぶことがないため、値は@esd_userに割り当てられ、その値はnilです。あなたの第二の問題は、ここでは4行目です::

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 
関連する問題