Я использую Rails 4.2.7. У меня есть атрибут в моей модели, которая не имеет поля базы данных под нимВ RoR, как мне инициализировать поля в моей модели на основе поля в моей модели, у которого нет базового столбца базы данных?
attr_accessor :division
Это инициализируется при создании нового объекта.
my_object = MyObject.new(:name => name,
:age => get_age(data_hash),
:overall_rank => overall_rank,
:city => city,
:state => state,
:country => country,
:age_group_rank => age_group_rank,
:gender_rank => gender_rank,
:division => division)
То, что я хотел бы, когда это поле получает значение (если оно не ноль), для двух других полей, которые имеют отображение в базе данных, чтобы установить. Другие поля будут подстроками поля «деление». Где я могу поставить эту логику?
Вы просматривали обратные вызовы Active Record? например, 'after_initialization'? вы можете написать обратный вызов, который проверяет значение этого поля и устанавливает другие два на этом этапе. –
Могу ли я определить метод «after_initialization» в моей модели? Я не вижу этого в документации Rails. –
Вот рекомендации по рельсам с использованием обратных вызовов: http://guides.rubyonrails.org/active_record_callbacks.html Стоит прочитать - они очень полезны :) –