【发布时间】:2013-02-16 19:58:56
【问题描述】:
按照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
怎么办?
【问题讨论】:
标签: ruby-on-rails ruby rails-admin