会社モデルにシリアル化された列があります。
class Company < ActiveRecord::Base
serialize :names
理想的には、次のようなさまざまな名前をデータベースに保存する必要があります。
---
short: bestbuy
long: bestbuy ltd.
現在、私のcompany#editページに、次のテキスト領域があります。
<%= f.text_area :names %>
データベースにそのYAMLがある場合、ブラウザーには次のように表示されます。
{"short"=>"bestbuy", "long"=>"bestbuy ltd."}
しかし、私がそれを提出すると、データベースでは次のようになりました。
--- ! '{"short"=>"bestbuy", "long"=>"bestbuy ltd."}'
質問
textareaが編集者が編集できるYAMLを表示するようにするにはどうすればよいですか?
YAMLとルビーハッシュのマッシュではなく、データベースに適切なYAMLを保存させる方法は?
アップデート
Hash
列を次のようなタイプに強制すると、次のようになります。
serialize :names, Hash
保存しようとするとエラーが発生します:
Admin::CompaniesController#updateのActiveRecord::SerializationTypeMismatch
属性はハッシュであるはずでしたが、文字列でした