質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

399閲覧

ArgumentError in Samples#indexが解消できない

chichichi

総合スコア10

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2022/05/16 09:34

編集2022/05/18 06:04

事象

アプリケーションがほぼ完成し、動作の見直しをしていた際、それまで正常に動いていた投稿内容の「編集」ボタンを押した際にエラーが発生し、エラー解消railのためにいろいろいじっていたところ、今度はindexを表示できなくなってしまった。

エラー内容

ArgumentError in Samples#index

Can't resolve image into URL: to_model delegated to attachment, but attachment is nil
原因は部分テンプレートの以下の部分で発生しているらしい。
<%= link_to image_tag(sample.image, class: :card__img), sample_path(sample.id) %>

views/samples/_sample.html.erb

1<div class="card"> 2 <%= link_to image_tag(sample.image, class: :card__img), sample_path(sample.id) %> 3省略

自分で調べたことや試したこと

「to_model は添付ファイルに委任されています」とは、アソシエーションのhas_one_attachedが効いてるというメッセージ。にも関わらず、添付ファイルはnilですと返ってくる。

アソシエーションを確認しましたが、imageに関するアソシエーションおよびバリデーションは設置済み。
編集ページエラーのときにいじっていないので問題はないと思われる。
なのに
image_urlは「ArgumentError: wrong number of arguments (given 0, expected 1..2)」となる。

丸一日見直していましたが原因を見つけられず。
どなたかコードを見ていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2022/05/16 09:47

> にも関わらず、添付ファイルはnilですと返ってくる。 画像のないprototypeを引いてしまった、ということはありませんか?
chichichi

2022/05/16 10:26

ご回答いただきありがとうございます。 最後に見たときは画像はすべて添付されている状態でした。 理解できておらず申し訳ございません。「画像のないprototypeを引いてしまった」というのは 具体的にどういう状況で、どのように調べることができるでしょうか。
maisumakun

2022/05/16 10:56

> 最後に見たときは画像はすべて添付されている状態でした。 今もそうなのか確認はしましたか?
guest

回答1

0

自己解決

部分テンプレートを以下のように修正したところ、indexが表示されるようになりました。

<%= link_to image_tag(sample.image, class: :card__img), sample_path(sample.id) %>

【修正後】

<%= link_to image_tag(sample, class: :card__img), sample_path(sample.id) %>

ただ、当然ながらimageを消したのでindexの画像は非表示で、
しかし詳細ページは正常にimageも表示されますので、画像は添付されている模様。

コードは修正前に戻した状態で、indexから詳細ページへ移り、
編集画面で画像を添付し直す動作をしたところ、indexにすべての画像が表示されるようになりました。

投稿2022/05/16 11:11

編集2022/05/18 06:00
chichichi

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問