DEV Community

n350071๐Ÿ‡ฏ๐Ÿ‡ต
n350071๐Ÿ‡ฏ๐Ÿ‡ต

Posted on

Append a method to all attributes with attribute_method_suffix in Rails

๐Ÿ”— Parent Note

๐Ÿ‘ You can add the same logic method to each attribute by write once

class Person < ActiveRecord::Base
  attribute_method_suffix '_changed?'
  attribute_method_suffix '_short?'

  private
    def attribute_changed?(attr)
      ...
    end
    def attribute_short?(attr)
      send(attr).length < 10
    end
end

person = Person.find(1)
person.name_changed?    # => false
person.name = 'Hubert'
person.name_changed?    # => true
person.name_short?      # => true
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“š attribute_method_suffix

Top comments (0)