Skip to content

ArrayAttributes - Rails Concern to encapsulate common array attributes methods

License

Notifications You must be signed in to change notification settings

gogrow-dev/array_attributes

Repository files navigation

ArrayAttributes

A Rails plugin to encapsulate common array attributes methods.

This gem can be used to avoid repeating the same methods in models when working with arrays.

Support

This branch targets Ruby 2.4+ only

Usage

Install gem:

Add this line to your Gemfile:

gem 'array_attributes'

then run:

bundle install

Enable ArrayAttributes

class Book < ActiveRecord::Base
  string_array_attributes [:authors, :countries]
end

It assumes you are passing string attributes.

It also supports the following options:

  • :reject_blank: whether the attribute should skip blank values
  • :reject_if: condition to reject values
class Device < ActiveRecord::Base
  string_array_attributes [:ips], reject_blank: true, reject_if: ->(value) { value == '127.0.0.1' }
end

attribute_raw

You can invoke attribute_raw to get the array values joined by commas.

book = Book.create(authors: ['John Doe', 'Jane Doe'])
book.authors_raw #=> "John Doe, Jane Doe"

attribute_raw=

You can invoke attribute_raw= to set the array value by entering the values split by commas.

book = Book.new
book.authors_raw="John Doe, Jane Doe"
book.save!
book.authors #=> ["John Doe", "Jane Doe"]

See LICENSE.

About

ArrayAttributes - Rails Concern to encapsulate common array attributes methods

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages