http://railscasts.com/episodes/345-hstoreで提案されているように、次を追加しました。
serialize :properties, ActiveRecord::Coders::Hstore
私のモデルに。これにより、ビューでキーと値のペアを反復処理できます (それがないと、文字列エラーに対して未定義のメソッド「each」が発生します)。
<% @item.properties.try(:each) do |key, value| %>
<%= key %>: <%= value %><br />
<% end %>
RailsAdmin の hstore フィールドを、テキスト フィールドとして明示的に宣言することで機能させることができました。
class Item < ActiveRecord::Base
attr_accessible :name, :properties, as: :admin
serialize :properties, ActiveRecord::Coders::Hstore
rails_admin do # without this block, properties gets ignored in RailsAdmin
edit do
field :name
field :properties, :text
end
end
end
上記のシリアル化呼び出しを無効にすると、RailsAdmin でハッシュを次の形式で設定できます。
"key1" => "value1", "key2" => "value2"
ただし、シリアライズ呼び出しがコメントアウトされていない場合 (ビュー内のループが機能するようにするため)、ハッシュを保存するときに RailsAdmin がクラッシュします。
undefined method `map' for String
何をすべきか?