Ruby Class attr_writer и пользовательский ридер не работают как рекламируется - PullRequest
0 голосов
/ 27 июня 2011

Ruby-версия: 1.8
Rails-версия: 2.3

У меня есть класс, в котором я написал «attr_writer: content», и у меня есть собственный метод чтения «content».Делая это таким образом, содержимое имеет значение NULL.Я проверил значения, и они выглядят так:

--- &id001 !ruby/object:Email 
attributes: 
  created_at: 
  expired_at: 
  updated_at: 
  subject: Test Eblast
  content: 
  inline_attachments: 
  attachments: 
attributes_cache: 
  expired_at: 
changed_attributes: 
  subject: 
content: This is the body
errors: !ruby/object:ActiveRecord::Errors 
  base: *id001
  errors: !omap []

new_record: true

Обратите внимание на отступ «content:» во 2-м экземпляре.Он записывается не как атрибут, а как-то еще ... пока фактический атрибут не обновляется.Когда я беру 'attr_writer' и пишу свои собственные методы getter / setter явно, все работает.Почему это так?

1 Ответ

3 голосов
/ 27 июня 2011

attr_writer создает методы получения и установки для переменной экземпляра, а не атрибут ActiveRecord.

...