'New line in csv cell (rails)

I'd like multiple pieces of data on different lines within the same CSV cell like this:

"String" 2-15-2021 05:26pm

"String ..."

"String..."

I have tried the following and ended up with \n in the cell and not an actual new line, like this "2-15-2021 05:26pm \nHi, it's ...".

["\n", time, text.body].join("\n")

[time, text.body, "\n"].join("\n")

[time, text.body].join("\n")

The input data is an array of hashes. The output of a row is a hash with keys and values, one of the values is a list of strings (or this can be a list of lists of string, I am playing with what I can get to work). The list of strings is where I am trying to add line breaks.

I am using this to create the csv:

CSV.open("data.csv", "wb") do |csv|
    csv << list.first.keys
    list.each do |hash|
      csv << hash.values
    end
end


Solution 1:[1]

I ended up needing a list of strings that I could then join and add new lines onto.

values = []
values.push("#{time}, #{text.body}")

# And then in the hash for the csv, setting the value for that column like this:
{ message: values.join("\n\n")}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 nm12