0

「show」アクションがコントローラー内で呼び出されたときにjsonを返すための最良の方法を探しています。Rails 2.3.x を使用しています。

オブジェクトを返す前に、追加したいものとオブジェクトから削除したいものがいくつかあるので、次のいずれかを実行するだけです。

respond_to do |format|
  format.json {
    render :json => @object.to_json
  }
end

必ずしもうまくいくとは限りません。そのオブジェクトのすべてを公開したくありません。私はここで2つの意見があると思っていました:

  1. コントローラーにプライベート ヘルパー メソッドを作成して、必要なものだけを含む新しいオブジェクトを作成し、代わりにそれを送信します。ここでの問題は、このアプローチでは使用できないいくつかのビュー ヘルパー メソッドがあることです。
  2. json を手動で show.json.erb ビューに書き出します。ここでの問題は、私が穀物に逆らっているように見え、末尾のコンマなどを説明するために多くのロジックを入れなければならないことです。

これが私が代わりに返す HTML である場合は、明らかに .html.erb ファイルを使用して、そこに必要なものだけを含めます。しかし、私は JSON を扱っているので、コード内のほとんどすべてを処理する必要があり、ビュー ファイルを処理する必要さえないようです。

考え?

4

1 に答える 1

2

RABL (https://github.com/nesquena/rabl) をご覧ください。次に、次のように show.json.rabl ファイルを作成できます。

object @person
attributes :id, :name, :age

RABL でこの RailsCast をチェックしてください: http://railscasts.com/episodes/322-rabl

https://github.com/rails/jbuilderと RailsCastもチェックしてください: http://railscasts.com/episodes/320-jbuilder

于 2012-05-21T17:55:26.187 に答える