Para anexar a uma string existente é o que estou fazendo.
s = 'hello'
s.gsub!(/$/, ' world');
Existe uma maneira melhor de anexar a uma string existente.
Antes que alguém sugira a seguinte resposta deixe-me mostrar que este não funciona
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
No caso acima, object_id será diferente para dois casos.
<<
já modifica o estado do objeto. E tambémconcat
.widget.notes.where(:author_id => a).first
presumivelmente, retorna um novo objeto a cada vez, que terá sua própria string independente.você também pode usar o seguinte:
fonte
<<
deve ser encadeado também, uma vez que retorna a string.Posso perguntar por que isso é importante?
Eu sei que esta não é uma resposta direta à sua pergunta, mas o fato de que você está tentando preservar o ID do objeto de uma string pode indicar que você deve olhar novamente para o que está tentando fazer.
Você pode descobrir, por exemplo, que confiar no ID do objeto de uma string levará a erros que são bastante difíceis de rastrear.
fonte
Ainda uma outra maneira:
fonte
Aqui está outra maneira:
fonte