Heading image for post: Using a hash of data for string replacement in Ruby


Using a hash of data for string replacement in Ruby

Profile picture of Matt Polito

Ruby string substitution using the % operator is a way to format strings in Ruby, enabling you to insert variables or expressions within a string. This technique can make it easier to build strings dynamically, particularly when you need to include variable content.

When you pass a hash of values for string substitution in Ruby, you can use named placeholders within the string. This approach is more readable and maintainable, especially with many variables or when the order of variables is only sometimes apparent. Here's how it works:

Syntax with Hash

To use a hash for string substitution, you specify symbols in the format string corresponding to the hash keys. Then, you pass the hash to the % operator. The syntax looks like this:

data = {thing: "article", exclamation: "possibly informative"}
puts "This %{thing} is going to be a %{exclamation} %{thing}!" % data

Each %{key} in the format string is replaced by the corresponding value from the hash.

In this example, the format string includes named placeholders (%{thing} and %{exclamation}), which are replaced by the values from the data hash. This method makes the code more readable because it's clear what each placeholder represents without having to match positions in an array to placeholders in the format string.


  • Readability: Using named placeholders makes your format strings easier to read and understand, especially when working with multiple variables.
  • Maintenance: It is easier to add, remove, or reorder variables in your string without worrying about their position in an argument list.
  • Flexibility: You can reuse the exact variable multiple times in the format string without repeating it in an argument list.

More posts about Ruby

  • Adobe logo
  • Barnes and noble logo
  • Aetna logo
  • Vanderbilt university logo
  • Ericsson logo

We're proud to have launched hundreds of products for clients such as LensRentals.com, Engine Yard, Verisign, ParkWhiz, and Regions Bank, to name a few.

Let's talk about your project