如果我要从具有内置包装器的数据库中获取一个字段,我将以对象数组的形式接收数据,每个对象都有一系列可以调用的实例。例如:
class DataWrapper
attr_reader :foo, :bar
end
返回数据,如[@ data1,@ data2,@ data3等],其中@data [1-3]是DataWrapper的所有实例。
那么,如果我在知道将要使用哪种上下文之前收到该数据,以及我想如何格式化它,该怎么办呢?在特定上下文中格式化数据的最佳(非Rails)方法是什么,例如
case :xml
@data1.to_xml.foo #foo = 4
case :web_table
@data1.to_web_table.foo #foo = "four"
答案 0 :(得分:0)
“格式化”方法应该是最后的。例如
case :xml
@data1.foo.to_xml #foo = 4
case :web_table
@data1.foo.to_web_table #foo = "four"
....
您需要将格式化方法混合到基类或对象。
格式化方法可以检查父类的类,并决定如何转换值。