今回は自分が開発していく中で解決するのに時間が掛かった問題に直面したのでメモを残しますー
今回時間が掛かった問題はタイトルにも書かれているが「ActionView::Template::Error (wrong number of arguments (given 3, expected 2; required keyword: object)):」という問題について!
Rubyのバージョンが3.0.1だということが前提で書いていくよー
この後、バージョンを変更するけどね。
【そもそもこのエラーはどういう意味なのか】
これは調べれば出てくると思うけどこれは「本来引数を2つ欲しいのに対して3つ送られてきている」ことが原因でこのようなエラーが起こるみたい。
私のときのエラーはこんな感じです!
ActionView::Template::Error (wrong number of arguments (given 3, expected 2; required keyword: object)):
42:
43:
44: <%= f.label :profile_image, "プロフィール画像", class: "label" %>
45: <%= f.attachment_field :profile_image, class: "input" %>
46:
47:
48: <%= f.submit "更新", class: "button is-success" %>
勝手な推測だけど45行目のattachment_field :profile_image, class: "input" の2つの他に3つ目の引数が送られてきたのかなと思っていました。
【解決方法】
ということはコントローラのどこかを変えればいいんじゃないの?と思うかもしれませんが実際は違いました。
これは個人的にも驚きました…これのせいで時間が多く掛かった
解決としてはRubyのバージョンを下げます。
Rubyのバージョンが3.0.1の場合は2.6.7にしてください!(私はこれで解決しました)
(コマンドは近々まとめて別記事か更新いたします)
Rubyのバージョンを下げる方法です!更新しました!
https://qiita.com/Minonnn/items/165ab1d983ed14e0e3e4
【原因】
詳しい原因は分かりませんがおそらくはrefileっていうライブラリが原因で処理が進んでいなかったのではないかなと思っています。(そのような記事を見かけました)
でも実際にバージョンを下げただけで解決したので何かしらの処理が3.0.1に対応していなかったのが原因だという可能性が高いですねー
【最後に】
久々の投稿でした。週1ぐらいはせめて投稿したいですが開発する方に集中してしまいますね。
頑張りますー
記事自体すごい見にくいので書き方を覚えたい
以上!!