@Fly3110
web developer

Почему после переопределения получения поля из модели не работает его изменение?

Всем привет.

Есть модель. У нее есть поле options, типа json. В базе это поле может быть null.

Я хочу, чтобы в рельсах, если в базе это поле равно null, то мне бы все равно возвращался пустой Hash.
Написал вот такой метод (в модели)

def options
  self[:options] || {}
end


Но, после этого, не работает вот такая конструкция:
instance.options[:some_key] = some_value

прямое присваивание (instance.options = {some_key: some_value}) работает нормально.
При дебаге и вижу, что при присваивании ключа (которое не работает), выполнение заходит в мой переопределенный метод. Но ведь в нем идет просто получение значения. Не могу понять, как надо сделать, чтобы все работало :)
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
@evgeniy_trebin
Ruby on Rails developer
можно написать так
def options
  self[:options] ||= {}
end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы