我正在尝试在每个词典模型上保存一系列术语(我希望能够基本上搜索标签)。所以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