Postgres array support for activerecord
Add basic support for postgres arrays to activerecord, with special attention to getting rails migrations / schema dumps working nicely.
gem install activerecord-postgres-array
or if you use bundler
- In your migrations you can define postgres array fields such as:
create_table :people do |t| ... t.string_array :real_energy t.decimal_array :real_energy, :precision => 18, :scale => 6 ... end
- When queried, the postgres arrays will be returned as ruby arrays, and vice versa.
Compatibility with activerecord-postgres-hstore
As of activerecord-postgres-hstore ‘0.7.0’,
ActiveRecord::Base#arel_attributes_value is not monkey patched and therefore does not interfere with loading of this gem.
If you are using ‘0.6.0’, or earlier, of activerecord-postgres-hstore you must use this gem’s version ‘0.0.8’ and the following still applies:
activerecord-postgres-hstore and activerecord-postgres-array both monkeypatch
ActiveRecord::Base#arel_attributes_values, which leads to problems if these gems are used together. This gem is aware of activerecord-postgres-hstore and incorporates it in the monkeypatch. However, it is important that activerecord-postgres-array is loaded after activerecord-postgres-hstore for this to work.
- Parsing of multi-dimensional postgres array strings is currently not implemented.
- String, Decimal and Integer arrays have been tested, but other array types have not been. Type casting will need to be implemented for booleans, dates, etc
- Arel like querying of values within arrays
- Arel like aggregate functions