Model Rails 4 to_xml问题,访问器在模型中被覆盖
我在覆盖模型中的访问器以及稍后在模型上使用Model Rails 4 to_xml问题,访问器在模型中被覆盖,model,ruby-on-rails-4,ruby-2.0,export-to-xml,Model,Ruby On Rails 4,Ruby 2.0,Export To Xml,我在覆盖模型中的访问器以及稍后在模型上使用to_xml方法时遇到问题。问题是,to_xml似乎使用默认的getter方法,而不是使用read_属性 我的模型: class Announcement < ActiveRecord::Base ... def created_at date = self[:created_at] "#{german_date(date)} #{german_time(date)} #{I18n.t(:clock)}" end
to_xml
方法时遇到问题。问题是,to_xml
似乎使用默认的getter方法,而不是使用read_属性
我的模型:
class Announcement < ActiveRecord::Base
...
def created_at
date = self[:created_at]
"#{german_date(date)} #{german_time(date)} #{I18n.t(:clock)}"
end
...
end
问题是:当我运行到_xml
时,我遇到了以下问题:
NoMethodError: undefined method `xmlschema' for "15.03.2009 18:17 Uhr":String
显然,
to_xml
使用的是我的自定义getter,而不是read_属性(:created_at)
,这将给出正确的值。我很惊讶没有在其他地方发现这个问题,但是有解决这个问题的方法吗 有一种方法可以使用选项和带有to_xml
announcment.to_xml(except: :created_at, procs: -> (options, record) {
options[:builder].tag!("created-at", record.read_attribute(:created_at))
})
但这并不漂亮。我只想在视图中使用装饰器,而不使用模型属性方法,Draper在Rails 4中工作得非常好。我接受它是因为Draper的提示。它似乎是一颗伟大的宝石!不过,第一个“解决方案”过于繁琐。
announcment.to_xml(except: :created_at, procs: -> (options, record) {
options[:builder].tag!("created-at", record.read_attribute(:created_at))
})