Переопределить методы атрибута ActiveRecord

Пример того, о чем я говорю:

class Person < ActiveRecord::Base
  def name=(name)
    super(name.capitalize)
  end
  def name
    super().downcase  # not sure why you'd do this; this is just an example
  end
end

Кажется, это работает, но я только что прочитал раздел о переопределении методов атрибута вActiveRecord :: Базовые документыи предлагает использоватьread_attribute а такжеwrite_attribute методы. Я думал, что должно быть что-то не так с тем, что я делаю в примере выше; в противном случае, почему они благословили бы эти методы как «правильный способ» переопределить методы атрибута? Они также вынуждают гораздо более уродливую идиому, поэтому должна быть веская причина ...

Мой реальный вопрос: что-то не так с этим примером?

Ответы на вопрос(4)

Ваш ответ на вопрос