Pour ajouter à une chaîne existante, c'est ce que je fais.
s = 'hello'
s.gsub!(/$/, ' world');
Existe-t-il un meilleur moyen d'ajouter à une chaîne existante.
Avant que quelqu'un ne suggère la réponse suivante, laissez-moi montrer que celle-ci ne fonctionne pas
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
Dans le cas ci-dessus, object_id sera différent dans deux cas.
<<
modifie déjà l'état de l'objet. Il en va de mêmeconcat
.widget.notes.where(:author_id => a).first
retourne vraisemblablement un nouvel objet à chaque fois, qui aura sa propre chaîne indépendante.vous pouvez également utiliser les éléments suivants:
la source
<<
devrait également pouvoir être chaîné, car il renvoie la chaîne.Puis-je demander pourquoi c'est important?
Je sais que ce n'est pas une réponse directe à votre question, mais le fait que vous essayez de conserver l'identifiant d'objet d'une chaîne peut indiquer que vous devriez revoir ce que vous essayez de faire.
Vous pourriez constater, par exemple, que le fait de s'appuyer sur l'ID d'objet d'une chaîne entraînera des bogues assez difficiles à détecter.
la source
Encore une autre façon:
la source
Voici une autre façon:
la source