Ruby on Rails 공부중인데 scan문이 잘 안되요..

joy5140의 이미지

<%= a = "cruel world" %>
<%=
	a.scan(/\w+/).each do |s|
		s+".jpg"
	end
%>

어떤 뷰의 코드가 이것이고,

출력은 cruel world ["cruel", "world"] 입니다.

string.scan(regexp) 가 리턴하는 값은 분명 Array 인데..

왜 each 문으로 각각의 값 마다 ".jpg"를 붙이라고 한걸 무시하고

배열 자체가 문자열이 되서 출력된거죠..?

제가 기대한 값은 cruel world cruel.jpg world.jpg 입니다..

어디서 잘못됬는지를 모르겠네요. 별로 긴 코드도 아니라 어디서 오류가 난건지...

익명 사용자의 이미지

루비는 잘 모르지만

아래와같이 되서 그냥 a찍힌거 같습니다.

그리고 each 함수내부에서 + 연산이 원본 배열에 영향을 어떻게 주는지 확인해보셔야할듯합니다.

<%=a%> <% a.scan(/\w+/).each do |s| s + ".jpg" end %>