답변:
를 사용 <<
하여 내부 문자열에 추가 할 수 있습니다 .
s = "foo"
old_id = s.object_id
s << "bar"
s #=> "foobar"
s.object_id == old_id #=> true
<<
이미 개체의 상태를 수정합니다. 그래서 않습니다 concat
.
widget.notes.where(:author_id => a).first
아마도 매번 새로운 객체를 반환 하기 때문에 변경되지 않은 문자열을 다시 얻습니다 .
다음을 사용할 수도 있습니다.
s.concat("world")
<<
문자열을 반환하므로 체인도 가능해야합니다.
이것이 왜 중요한지 물어볼 수 있습니까?
이것이 귀하의 질문에 대한 직접적인 대답이 아니라는 것을 알고 있지만 문자열의 개체 ID를 유지하려는 사실은 수행하려는 작업을 다시 확인해야 함을 나타낼 수 있습니다.
예를 들어 문자열의 개체 ID에 의존하면 추적하기 매우 어려운 버그가 발생할 수 있습니다.