0

この Railscast を読んでいます: http://railscasts.com/episodes/340-datatables?view=asciicast

ページの途中で、ライアンは言います

as_json メソッドは、コントローラーの render_json 呼び出しによってバックグラウンドでトリガーされます。

しかし、それ以上の説明はありません。このクラスもCSVで応答させようとしていますがdef as_csv、クラスとformat.csv { render :csv =>呼び出し元のコントローラーでは何もしません。

そのため、どういうわけかクラスは によって初期化されたときを知っていますがrender :json、 によって初期化されたことを知らせる方法がわかりませんrender :csv。誰かがこれを説明できますか?

4

1 に答える 1

1

にオブジェクトを渡すと、そのオブジェクトrender :jsonas_jsonメソッドが呼び出され、そのオブジェクトの JSON 表現が取得されます。このメソッドを上書きして、必要なものを何でも返すことができます。

これは特に JSON に対してのみ機能し、すべての形式に適用できる一般的な規則ではありません。オブジェクトの CSV 表現をレンダリングしたい場合は、次のようなものを使用して簡単に実行できます。

format.csv do
  render :text => object.as_csv
end

as_csv次に、クラスにメソッドを実装します。

于 2012-09-09T00:22:38.053 に答える