Как я могу использовать update_attributes с пользовательскими методами установки в Rails? - PullRequest
7 голосов
/ 05 октября 2010

У меня есть модель с именем Contact с атрибутом phone_number. У меня есть несколько пользовательских методов установки, таких как

def prefix=(num)  
  self.phone_number[3..5] = num  
end

Когда я звоню @contact.update_attributes({:prefix => '510'}), я не получаю никаких ошибок и @contact изменяется, но изменения не попадают в базу данных. Я пытался использовать attr_accessible, чтобы разрешить использование этих методов установки безрезультатно.

Есть ли способ заставить update_attributes работать на меня? Я использую Rails 2.3.8.

1 Ответ

14 голосов
/ 05 октября 2010

Вы должны сообщить рельсам, что вы изменили атрибут при выполнении изменений на месте:

def prefix=(num)
  phone_number_will_change!
  self.phone_number[3..5] = num
end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...