По умолчанию ActiveRecord берет все поля из соответствующей таблицы базы данных и создает общедоступные атрибуты для всех из них.Есть ли способ сделать атрибуты Rails ActiveRecord частными?
Я думаю, что это разумно не, чтобы сделать все атрибуты в модели общедоступными. Более того, выявление атрибутов, предназначенных для внутреннего использования, загромождает интерфейс модели и нарушает принцип инкапсуляции.
Итак, есть ли способ сделать некоторые атрибуты буквально private
?
Или, может быть, я должен перейти к другому ORM?
Любая причина, по которой я не мог/не мог использовать следующее, чтобы выполнить это? private attr_accessor my_private_attribute –
@TC: потому что они не будут правильно отслеживать атрибуты. методы write_attribute/read_attribute - это то, как вы фактически взаимодействуете с active_record –
, write_attribute не будет сохранять значение DB. Один из них должен был бы назвать self.save впоследствии, чтобы фактически обновить запись в БД. – Magne