Writing data into yml file in a particular format

Hi,

I have a hash in a controller file which I have to write into a YAML.yml file in a particular format.

This is the code I am using in the controller to write to yml file.

"File.open("config/locales/output.yml", "w") {|f| f.write(hash_data.to_yaml) }"

output.yml is the yml file. hash_data is my hash which has a key having a hash to array of values.

Current output;

Hi,

Hi,

I have a hash in a controller file which I have to write into a YAML.yml

file in a particular format.

This is the code I am using in the controller to write to yml file.

"File.open(“config/locales/output.yml”, “w”) {|f|

f.write(hash_data.to_yaml) }"

output.yml is the yml file.

hash_data is my hash which has a key having a hash to array of values.

Current output;


‘01’:

  • red

  • green

Expected output:

en:

01: “red, green”

Is this possible?

You could convert your array to a string before to call .to_yaml: [ ‘red’, ‘green’ ].join(', ')

Cheers,

Nico

It’s certainly possible, but if you want the output YAML to look like that you’re going to need to put the input data into the same sort of format. For instance, running the expected output (with quotes around 01, to avoid it being parsed as an integer) through YAML.load gives this Ruby result:

{“en”=>{“01”=>“red, green”}}

–Matt Jones