railsで保存されてるimg_urlをAPIとして返したいです。
現在はUser.findした結果(current_user)を以下のように返してます。
render json: current_user
ですが、shrineというgemを使ってイメージURLを管理していてDBにあるデータをそのままAPIとして返してもimage_urlを取得することはできませんでした。
pryで確認したcurrent_user
current_user => #<User id: 1, provider: "email", uid: "kaka@xx.com", allow_password_change: false, name: "pepe", nickname: "negabaro22", image: "", email: "kaka@xx.com", created_at: "2018-12-11 10:21:34", updated_at: "2019-02-13 09:23:57", image_data: "{\"original\":{\"id\":\"user/1/image/original-dd7d9db9f...">
current_user.imageをpryで確認した結果
current_user.image => {:original=> #<UserImageUploader::UploadedFile:0x00007f7d7a982228 @data= {"id"=>"user/1/image/original-dd7d9db9fc35aeafdfbc37adcf120895.jpg", "storage"=>"store", "metadata"=> {"filename"=>"2017mostbeautiful_twice_sana_07.jpg", "size"=>77596, "mime_type"=>"image/jpeg", "width"=>600, "height"=>480}}>, :thumbnail=> #<UserImageUploader::UploadedFile:0x00007f7d7a982098 @data= {"id"=>"user/1/image/thumbnail-a3f5dca7fa86db54e46d406900b5643c.jpg", "storage"=>"store", "metadata"=> {"filename"=>"image_processing20190213-678-1wnlsmx.jpg", "size"=>88482, "mime_type"=>"image/jpeg", "width"=>600, "height"=>480}}>}
pryでcurrent_user.image_url(:original)を見た結果
current_user.image_url(:original) => "https://xx.s3.ap-northeast-1.amazonaws.com/store/user/1/image/original-dd7d9db9fc35aeafdfbc37adcf120895.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIDRWRPXU5SK7OI6Q%2F20190213%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20190213T092505Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=fc96856e07167e79839b13e414ec916f26a062405d1827923fe4696d200aad3e"
仕組みは理解できませんが、とりあえず、controller側でcurrent_user.image_url(:original)とcurrent_user.image_url(:thumbnail)の結果を取得してcurrent_userを加工して render jsonで返せば動きそうです。
ここでいくつか質問させてください。
1. current_userのobjectにprofile_imgというobjectを追加することは可能ですか?
調べてみるとstoreというのはhashにkeyを追加することが可能のようですが、current_userに対してstoreするとエラーになったので
current_userはhashではないようです。
current_user.store(profile_img: current_user.image_url(:original))
2. current_userの型を特定する方法はありますか?
current_user.classとか見てもcurrent_user自体の型を特定することはできませんでした。
current_userの型を特定すればその型に対して値を追加できる方法を調べられるのかと思いました。
なにかヒントになることありましたら教えていただくと大変助かります。
よろしくおねがいします
回答1件
あなたの回答
tips
プレビュー