【发布时间】:2013-04-09 11:08:56
【问题描述】:
我在覆盖模型中的访问器并稍后在模型上使用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
我使用它是为了在我的 haml 视图中轻松运行参数,始终使用正确的标签和 text_fields 方法。因为我需要修改一些属性来显示,所以我覆盖了访问器。
-# 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),这会给出正确的值。我很惊讶在其他地方没有发现这个问题,但是有解决这个问题的方法吗?
【问题讨论】:
标签: model ruby-on-rails-4 ruby-2.0 export-to-xml