1

カスタム json 応答を出力する必要がある Rails アプリケーションがあります。

Postは多くのモデルを持っていstatusesます。statusa のはpostごとに異なりますuser

ユーザー依存の es を通常の属性として含むPost.allすべての json として返したい(それらが属しているように見える属性、ネストされたものは何もない)poststatuspost

どうすればいいですか?モデルに current_user メソッドを渡したくないし、シリアライザーも使いたくない。

とにかく私はこのようなことをすることができます:

respond_with(posts: @posts.as_json(:methods => [:status(current_user)])
#NOTE the current user arg

編集:

明確化、私が欲しい:

id: 1, content: 'this is a post', status: 'reviewed'
#as json of course

どんな助けでも大歓迎です。

4

1 に答える 1

0

PostsController に以下を追加して、これを解決しました。

def json_params_for(objects)
   collection = objects.map do |post|
   { id: post.id,
     content: post.content,
     created_at: post.created_at,
     status: "reviewed
    }
   end
   collection.to_json
end

アクセスできるコントローラー内でカスタマイズされたすべてのjsoncurrent_user

于 2013-11-03T07:19:10.887 に答える