属性A、B、C、D、Eを持つRailsにオブジェクトがあります。このオブジェクトをJSONオブジェクトを通してクライアント側に渡すと、 JSONオブジェクトに属性AとDのみを含めるようにレールコントローラに指示することはできますか?次のように私のユーザーのコントローラ内のJSONオブジェクトに渡されたRailsオブジェクトの属性を指定する
は、私のコードは次のとおりです。
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
このコードは、動作しますが、返されるJSONオブジェクトは、@userオブジェクトのすべての属性が含まれています。何かがクライアントに返される前に、JSONオブジェクトに含まれている属性を制限するにはどうすればよいですか?
更新:lucapetteは裏で何が起こっているかについての良い背景を提供します。私はおそらく、すべての属性が返され、私は次のコードを使用して終了したいと思う場合がありますので:
format.json { render :json => @user.to_json(:only => ["id"])}
ありがとう、lucapette。あなたの応答を読んだ後、私はto_jsonとas_jsonメソッドを調べました。次に、コードを次のように変更しました。format.json {render:json => @ user.to_json(:only => ["id"])}余分なコードがあるように思われるが、私はそれを動作させる別の方法を見つけることができなかったようだ。 – Vee
うん、あなたもオプションを使用することができます。あまりにもうまくいく。それはあなたが直面しなければならない状況に本当に依存します。 – lucapette