나는 마이클 하틀에 의해 ruby on rails 튜토리얼 다음 오전 condintion 경우 그 내부에 할당 연산자를 사용하고 어떻게하지 않습니다루비 온 레일즈 튜토리얼 경우 (USER_ID = 세션 [: USER_ID])
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
end
수있는 사람하시기 바랍니다 그 뒤에있는 논리를 설명해 주시겠습니까?
정확히 일치하지 않습니다. 첫 번째 예에서 user_id의 범위는 if의 본문입니다. 후자에서 user_id는 if 다음에 정의됩니다. – Ursus
@Ursus : 잘못되었습니다. 그것을 irb에서 시도하십시오. 'if'는 Ruby의 스코프 게이트가 아닙니다. 클래스, 모듈 또는 메서드를 정의 할 때마다 새 범위가 만들어집니다. 여기에 대한 스코프 게이트 섹션에 대한 자세한 내용은 http://hopsoft.github.io/blog/ruby-metaprogramming-idioms/ – kiddorails
답변 전에 irb에서 시도했습니다. 음. – Ursus