我在覆盖模型中的访问器并to_xml
稍后在模型上使用该方法时遇到问题。问题是,这to_xml
似乎使用了默认的 getter 方法,而不是使用read_attribute
.
我的模型:
class Announcement < ActiveRecord::Base
...
def created_at
date = self[:created_at]
"#{german_date(date)} #{german_time(date)} #{I18n.t(:clock)}"
end
...
end
我正在使用它,以便通过始终对标签和 text_fields 使用正确的方法来轻松地运行我的 haml 视图中的参数。因为我需要修改一些属性,所以我覆盖了访问器。
-# Minified example ...
= form_for ...
- %i(a b c d e).each do |attr|
= f.label attr
= f.text_field attr
问题是:当我运行时to_xml
,我遇到了这个问题:
NoMethodError: undefined method `xmlschema' for "15.03.2009 18:17 Uhr":String
显然,to_xml
正在使用我的自定义 getter 而不是read_attribute(:created_at)
,这将给出正确的值。我很惊讶在其他地方没有发现这个问题,但是有解决这个问题的方法吗?