无法在Postgres数组列中保存Rails 4.2数组

我正在尝试在每个Dictionary模型上保存一组术语(我希望能够基本上搜索标签)。 所以terms = [“apple”,“pear”,“fruit”]可能是我试图在Dictionary模型的每个实例上保存的术语数组的一个例子。 以前,术语是序列化文本列。 然后我将其更改为尝试利用Postgres数组数据类型,如下所示。 当我尝试更新模型(例如,dictionary_example1.terms = [“fruit”,“pineapple”],然后调用save)时,所有存储的都是一个空数组[]。 我究竟做错了什么?

Model.rb

class Dictionary < ActiveRecord::Base serialize :terms, Array end 

schema.rb

 create_table "clinical_trials", force: :cascade do |t| t.string "terms", array: true end 

移民

 class ChangeTermsToArray < ActiveRecord::Migration def change change_column :dictionaries, :terms, "varchar[] USING (string_to_array(terms, ','))" end end 

ActiveRecord中的serialize用于将ruby对象序列化为字符串,以便在数据库中保留ruby对象。 最受欢迎的是YAML序列化器。 自4.0以来 ,Rails 4内置了对Postgresql数组的支持,因此我们不需要在模型中为数组属性设置字符串序列化。