rails如何在数据库中获取哈希值

时间:2016-01-26 06:39:05

标签: ruby-on-rails

有一列" config"在表格" mytable"中,当我得到数据时,它显示如下:

a = Mytable.last
a.config
=> '{\"states\"=>[\"us\", \"uk\"], \"sexes\"=>[\"1\", \"0\"], \"grades\"=>[\"2012\", \"2013\", \"2014\", \"2015\"]}'
a.config["grades"]
=> error

除非使用eval,否则我将如何获取数据。

2 个答案:

答案 0 :(得分:1)

您应该在模型中序列化您的列:

serialize :config, JSON

然后你可以像你的例子一样使用。

答案 1 :(得分:1)

您可以在接受的答案中使用Capybara.default_host将哈希值存储为数据库中的字符串。然而,一个巨大的缺点是无法查询序列化数据。您必须从数据库中提取数据才能以任何有意义的方式使用它。

如果您使用的是Postgres或更新版本的MySQL,则可以将数据库列声明为JSON类型列。 Postgres还有serialize类型,存储为键/值。所有这些都允许您查询和索引存储在列中的数据。

hstore