モデル内のアクセサーを上書きし、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
ではなく、カスタム ゲッターを使用しています。read_attribute(:created_at)
この問題がどこにも見つからなかったことに驚いていますが、この問題の解決策はありますか?