Qualcuno potrebbe spiegare la differenza tra le seguenti due righe di codice:Rubino gsub non cambia il contenuto durante l'impostazione del contenuto fa
1. element.content.gsub!("#{i}", "#{a[i]}")
2. element.content = element.content.gsub("#{i}", "#{a[i]}")
Nel codice seguente:
a.each_index do |i|
@doc.traverse do |element|
if element.text?
element.content = element.content.gsub("#{i}", "#{a[i]}")
end
end
end
puts @doc
Il il codice come presentato sopra cambia @doc. Mentre se uso la linea 1 con gsub!
non ha alcun effetto su @doc. Questo ha a che fare con come i blocchi gestiscono i loro parametri? Non dovrebbe essere passato tutto per riferimento in Ruby se non è stato copiato esplicitamente usando un metodo?
è il metodo proposto dal PO il modo di apportare modifiche 2. element.content = element.content .gsub ("# {i}", "# {a [i]}") – nilanjan