Rails: Adding migration to add an array (default empty)

postgresql, ruby-on-rails

Solution

Rails 4 the PostgreSQL Array data type

In terminal

$ rails generate migration AddTagsToProduct tags:string

Migration file:

class AddTagsToProduct < ActiveRecord::Migration
  def change
    add_column :products, :tags, :string, array: true, default: []
  end
end

https://coderwall.com/p/sud9ja/rails-4-the-postgresql-array-data-type

Problem

I'm trying to add a column called share to one of my resources. The idea is that users can upload documents and share them with other (specific) users, and the array contains the emails of those that the user wants to share with. I tried adding a migration with the code ``` class AddShareToDocuments < ActiveRecord::Migration def change add_column :documents, :share, :array, :default => [] end end ``` But when I open up rails console in the command prompt, it says that share:nil and user.document.share.class is NilClass. Creating a new array in the rails console sandbox by typing ``` newarray = [] ``` says that newarray.class is Array. Can anyone spot what I'm doing wrong?

Original source