LoginSignup
0
0

More than 1 year has passed since last update.

【エラー解決/Rails/devise/Careywave】ArgumentError in Users::Registrations#edit【editでプロフィール画像をプレビュー表示させる】

Posted at

初めに

deviseの編集ページで、プロフィール画像をプレビュー表示させる時に以下のエラーが出ました。

ArgumentError in Users::Registrations#edit
Can't resolve image into URL: undefined method `to_model' for #<ImageUploader:数字>
Did you mean?  to_xml

今後のため、解決方法を記録しておこうと思います。

使用したもの

Ruby on Rails
JavaScript
devise
Careywave(uploader)

エラー内容

ArgumentError in Users::Registrations#edit
スクリーンショット 2022-06-09 15.39.19.png

直訳

UsersのRegistrations#edit  引数エラー

画像をURLに解決できません:#<ImageUploader:0x00007fb52739e868>の未定義のメソッド `to_model'
もしかして? to_xml

解決方法

こちらの記事を参考にさせていただきました。
エラー解決!「ArgumentError in Users#index」in Rails 5.2

<%= image_tag current_user.image, id: :img_prev %><img src="<%= current_user.image %>" id ='img_prev'>

解決に辿り着くまで検証したこと

以下はエラーにあった際の考え方です。ご興味がありましたらご覧ください!
1行目  <% if current_user.image.present? %>
2行目  <%= image_tag current_user.image, id: :img_prev %> #エラーが表示された箇所

:red_circle: データが格納されているか確認
→current_user.imageは正しく格納されている

:red_circle: 1行目の「current_user」ではエラーが出ていないため、この記述はOK
→データは正しく格納されているので、表示方法に問題がある?

:red_circle: 表示方法について考える
・引数エラーということだったのでimage_tag以降の「current_user.image, id: :img_prev」をかっこで囲む
→文法エラーになる

:red_circle: uploaderに関する引数エラー、image_tagの表示方法を検索する
→そこでエラー解決!「ArgumentError in Users#index」in Rails 5.2の記事を見つける

原因

image_tagの表示方法が異なっていたことでした。
以下の表記に変更したところ、ユーザーのプロフィール画像を編集ページに表示することができました。

<%= image_tag current_user.image, id: :img_prev %> 
↓
<img src="<%= current_user.image %>" id ='img_prev'>

Railsのバージョン違いによって表示方法が変わるようでした。

まとめ

最後までご覧下さりありがとうございました。
エラーは学びが多いので、今後も解決するまでの過程を積極的に残していきたいと思います。

初学者のため、記入漏れや記述ミスがありましたら教えていただけると助かります。

こちらの記事がどなたかの参考になりましたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0