我正在读这个Railscast:http://railscasts.com/episodes/340-datatables?view=asciicast
在页面中间,Ryan说
as_json方法由render_json在幕后触发 打电话给控制器。
但没有给出更多解释。我也试图让这个类用CSV响应,但是类中的def as_csv
和调用控制器中的format.csv { render :csv =>
什么都不做。
所以,不知何故,该类知道它何时被render :json
初始化,但我无法弄清楚如何让它知道它是由render :csv
初始化的。有人可以解释一下吗?
答案 0 :(得分:1)
如果将对象传递给render :json
,则会在该对象上调用as_json
方法以检索该对象的JSON表示。您可以覆盖此方法,以便它返回您想要的任何内容。
这仅适用于JSON,它不是可应用于所有格式的一般规则。如果您想渲染某个对象的CSV表示,可以使用以下内容轻松完成:
format.csv do
render :text => object.as_csv
end
然后在类中实现as_csv
方法。