rubyでreturn user if user && user ってなに
今日実装してたら下記のようなコードに出会った
def user
user = User.find_by_email(email)
return user if user && user.authenticate(password)
errors.add :user_authentication, 'invalid credentials'
nil
end
わからなかったので調べてわかった
def user_auth return "これが帰ってくる" if "ここがどっちもtrueだったら" && "ここがどっちもtrueだったら" 'もし && でどちらか一方でもfalseだったら、下記の表示により、nilが返ってくる' nil end
ちなみに、文字列は必然的にtrueなので、上記のコードを実行した場合、「これが帰ってくる」が返ってくる
irb(main):132:0> def user_auth
irb(main):133:1> return "これが帰ってくる" if "ここがどっちもtrueだったら" && "ここがどっちもtrueだったら"
irb(main):134:1>
irb(main):135:1> 'もし && でどちらか一方でもfalseだったら、下記の表示により、nilが返ってくる'
irb(main):136:1> nil
irb(main):137:1> end
(irb):133: warning: string literal in condition
(irb):133: warning: string literal in condition
=> :user_auth
irb(main):138:0> user_auth
=> "これが帰ってくる"
irb(main):139:0>
理解した。