ご覧いただきありがとうございます。
以下コードにおいてデータにカラムをマージし、フロントにデータを渡してあげたいのですが、表題の通りimageの形式?が崩れてしまい適切に画像データを渡す事ができません。
該当コード(Rails)
posts = Post.order(updated_at: :desc) posts_with_username = posts.map{ |r| r.attributes.merge(name: r.user.name) } render json: { posts: posts_with_username, }, status: :ok
上記、フロント結果
0: content: "content#2_4" createdAt: "2021-10-26T06:47:33.702Z" id: 100 image: "sample.jpeg" # 問題箇所 name: "sampleUser_9" title: "title#2_4" updatedAt: "2021-10-26T06:47:33.702Z" userId: 9 1: 以下省略
希望取得形式
image: {url: 'http://localhost:3000/uploads/post/image/100/sample.jpeg'}
他に行ったこと
- pluckで2次元配列化し、データを取得しました。
しかし、megeと同様にimageの形式が崩れてしまい、フロント側で適切に処理することができませんでした。
- merge, pluckがよろしくないと思い、
attributes.update
で他のカラムを更新したところ、同様にimageのurlが崩れる結果になりました。
補足
merge, pluck等を行わずに、別でフロントに渡せば問題なく表示は行えます。
別でフロントに渡す実装
posts = Post.order(updated_at: :desc) posts_username = posts.joins(:user).pluck(:name) render json: { posts: posts, posts_userName: posts_username, }, status: :ok
フロント取得結果
# posts 0: content: "content#2_4" createdAt: "2021-10-26T06:47:33.702Z" id: 100 image: {url: 'http://localhost:3000/uploads/post/image/100/sample.jpeg'} title: "title#2_4" updatedAt: "2021-10-26T06:47:33.702Z" userId: 10 1: 以下省略... # posts_username 0: "sampleUser_9" 1:以下省略...
画像のデータを扱う際にオブジェクト形式でimageを渡せる方法をご存知の方いらっしゃれば教えてもらいたいです!!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/27 07:37