Rails:PostgreSQL数组不保存

时间:2016-05-11 08:48:27

标签: ruby-on-rails arrays postgresql ruby-on-rails-4

我正在尝试使用Arrays,我的数据库是PostgreSQL。我做了以下迁移。

add_column :articles, :tags, :text, array: true, default: []
add_index  :articles, :tags, using: 'gin'

这些信息可能有助于检查:

> rails db
psql (9.3.12)
Type "help" for help.

并在rails控制台中:

irb(main):087:0* article.tags.class
=> ActiveSupport::HashWithIndifferentAccess

当我通过psql检查它时:

     Column     |            Type             |                          
----------------+-----------------------------+------------------------
 tags     | text[]                      | default '{}'::text[]

所以,似乎一切都好,但我有一个问题是保存数据。我在rails控制台中尝试了不同的方法,例如:

Article.create(author: "test", tags: ["2", "3"])

irb(main):074:0> article.tags = ['3']
=> ["3"]
irb(main):081:0> article.tags_will_change!
=> {}

但结果是什么,标签仍然是空的! (tags: {}

此外,由于以下错误,我无法在控制台中使用+=<<push方法:

NoMethodError: undefined method `push' for {}:ActiveSupport::HashWithIndifferentAccess

任何人都可以提供帮助?解决方案是什么?

0 个答案:

没有答案