#本記事の目的
Rails(APIモード) + Reactで開発をしている最中、Post一覧表示にUserのAvatarを付与したいと考え、やり方を調べたのでまとめます。
##失敗例
posts_controller.rb
class PostController < ApplicationController
def index
posts = Post.all
hash = {}
posts.each{|post|
hash[post.id] = {post: post, user: post.user}
}
render json: { status: 200, posts: hash }
end
#以下略
これだと返ってくる値がハッシュになり、React側で
posts.length > ? (
//処理1
) : (
//処理2
)
といった記述ができなくなります。
###成功例
posts_controller.rb
class PostController < ApplicationController
def index
posts = Post.all
array = []
posts.each{|post|
array.push({post: post, user: post.user})
}
render json: { status: 200, posts: array }
end
配列型にしてそこにpushすればReact側での処理もスムーズに進みました。
N+1問題についてはまた次回まとめてみようと思います。