有一列" config"在表格" mytable"中,当我得到数据时,它显示如下:
a = Mytable.last
a.config
=> '{\"states\"=>[\"us\", \"uk\"], \"sexes\"=>[\"1\", \"0\"], \"grades\"=>[\"2012\", \"2013\", \"2014\", \"2015\"]}'
a.config["grades"]
=> error
除非使用eval,否则我将如何获取数据。
答案 0 :(得分:1)
您应该在模型中序列化您的列:
serialize :config, JSON
然后你可以像你的例子一样使用。
答案 1 :(得分:1)
您可以在接受的答案中使用Capybara.default_host
将哈希值存储为数据库中的字符串。然而,一个巨大的缺点是无法查询序列化数据。您必须从数据库中提取数据才能以任何有意义的方式使用它。
如果您使用的是Postgres或更新版本的MySQL,则可以将数据库列声明为JSON类型列。 Postgres还有serialize
类型,存储为键/值。所有这些都允许您查询和索引存储在列中的数据。
hstore