渲染XML,为非数据库字段设置值

时间:2011-02-02 14:57:34

标签: xml activerecord

我有一个模型'盛宴',它有一个计算年份的方法'date_for_year(year)'。它不仅仅是每年的数据库字段,而是需要动态计算。

拥有通常的视图文件我只需遍历@feasts对象并输出每个日期,只需在每行中调用feast.date_for_year(year)。

但是我如何为自动生成的XML输出做到这一点?我需要一种方法将一年传递给整个集合,以便日期在我的XML输出中列为字段。有谁知道怎么做?

目前我只有起跑线

render :xml => Feast.where(:date_for_year => params[:year]).all

当它不是数据库字段时,显然无法以这种方式工作。好吧,无论如何都没有想到,但我被困在这里,因为我甚至无法想象如何正确地做到这一点。如果有人能够告诉我如何在理论上解决它,也许我可以解决它。

非常感谢你的帮助

  • ·阿尔

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。有两种方法可以做到。

  1. 设置年份后,将自定义方法添加到@attributes。

  2. 自定义XML输出。

  3. 我更喜欢后者,因为它是一种更清洁的方式来实现它,imho。我是这样做的:http://danengle.us/2009/05/generating-custom-xml-for-your-rails-app/