我正试图将数据库返回的日期(日期格式)重新格式化为格式化字符串(格式:%m%d%y),以便由单独的客户端应用程序输出。
在客户端格式化它不是一个选项,因为只有网络应用程序在我们的控制之下。
def as_json(options={})
super(
:except => [:id, :created_at, :updated_at],
:include => {
:children => {
:except => [:created_at, :updated_at]
}
}
).merge(:tasks_total => self.tasks_total)
end
我曾尝试使用after_initialize回调,但这只会导致将一个nill值传递给客户端。
非常感谢您的帮助。
为了解决rails强制执行as_json中属性的数据类型的问题,我使用了类似的东西,并添加了一个散列:
def as_json(options={})
{
name: name,
date_of_birth: self.date_format(date_of_birth),
more_info: more_info,
children: children.map(&:as_json)
}
end
date_format
调用是因为该模型实际上有多个日期需要以相同的方式进行格式化。
感谢@rbates的帮助。