Including and Excluding in Rails-6


Including and Excluding in Rails-6

Rails 6 has been very exciting since it has so many features, which we found quite helpful from development perspective.

Let’s have a few method that has been added worth looking at including and excluding.


Using #excluding in Rails 6

Previously this was provided as without for Enumerable#without or Array#without returns the array without the provided value as a parameter.

Example:

# In Rails 5
[1, 2, 3].without(2)
=> [1, 3]

[1, 2, 3].without([1, 3])
=> [2]

This method has actually been renamed from without to excluding keeping without as an alias to excluding. So, in rails-6 we will be able to use both of them.

Example:

# In Rails 6
[1, 2, 3].excluding(2)
  => [1, 3]

[1, 2, 3].excluding([1, 3])
  => [2]


Including

Rails-6 adds including method as a counter part to excluding or without method. including does what excluding does, in opposite manner. It includes the passed value as parameter along with the Array or Enumerable on which it was invoked.

Example:

[1, 2, 3].including(33)
=> [1, 2, 3, 33]

[1, 2, 3].including([22, 23])
=> [1, 2, 3, 22, 23]


# With duplicate values

[1, 2, 3].including([2, 3])
=> [1, 2, 3, 2, 3]

Recommended Posts

Rails 5 adds OR Activerecord method
This or method was introduced in Rails 5, It returns a new ActiveRecord::Relation which is...
Descendants vs Subclasses in Ruby
Descendants has been a part of Rails ActiveSupport::DescendantsTracker for quite a while. However, Class#subsclasses is...
Ruby 3.1 adds subclasses method
Ruby 3.1 adds Class#subclasses method, which returns an array of subclasses directly inheriting from the...