Ruby 2.3.0 & rails 4.2.6を使用しています。私はのparamsでハッシュのネストされた配列とハッシュを持っている、と私は、ファイルに書き込むruby on railでobject.to_yaml(YAML)を使用すると "!ruby/hash:ActionController :: Parameters"を削除できますか?
hash = {"abc"=> [{"abc1"=>[{"key1" => value1},{"key2" => value2}]}]}
File.open("abc.yaml",'w+') {|f| f.write hash.to_yaml(:indentation => 8) }
---
abc:
- !ruby/hash-with-ivars:ActionController::Parameters
elements:
abc1: &2
- !ruby/hash-with-ivars:ActionController::Parameters
elements:
key1: value1
key2: value2
ivars:
:@permitted: false
- !ruby/hash-with-ivars:ActionController::Parameters
elements:
key1: value1
key2: value2
ivars:
:@permitted: false
ivars:
:@permitted: false
:@converted_arrays: !ruby/object:Set
hash:
*2: true
abc.yamlそのそれはハッシュ・シリアル化するための機能ですhere を述べましたwith-ivarsが2.0.9のバージョンのpsych gemに追加されました。シミジェムは現在Rubyの標準ライブラリの一部であり、この特定のバージョンはstdlib 2.3.0 preview1バージョンに追加されています。
しかし、私はyamlファイルを他の追加のパラメータを追加しないできれいに保つために努力しています。 ruby/hash-with-ivars:ActionController ::ファイルに書き込む際のパラメータ、要素、およびivarsを削除するにはどうしたらいいですか?
どのように 'hash'は見えますか? –
Railsのバージョンとタイプの "ハッシュ"を少なくとも提供しなければなりません。 '4.x'と' ActionController :: Parameters'のようです。だから、平らなヤムを得るためには、まずハッシュを平易にするべきです! 'hash.to_hash.to_yaml'や' hash.as_json.to_yaml'のようなものを使用してください。 –
@PavelMikhailyuk to_hashが機能しました!ありがとう!それを答えとして追加してもらえますか? – dips