実現させたいこと
画像投稿サイトを作っています。
Carrierwaveを作って画像の投稿をしているのですが、画像一覧する際に読み込みに時間がかかってしまうため、
画像のresizeをしたく思いました。表示する場合、下記のようなコードになるかと思います。
ruby
1<% @posts.each do |post| %> 2<%= link_to( image_tag(post.name.thumb.url), "/posts/#{post.id}") %> 3<% end %>
しかしこのようにすると、今後投稿される画像は大丈夫ですが、これまで投稿されたthumbのない画像が表示されずにエラーが出てしまいます。
これまでの画像を手作業でresizeしようかとも考えましたが、大変手間がかかってしまいます。
そこで、下記のような感じでエラーを起こさずに表示する方法はないでしょうか?
Ruby
1<% @posts.each do |post| %> 2 <%= link_to( image_tag(post.name.thumb.url), "/posts/#{post.id}") if post.image_name.thumb.present? %> 3 <%= link_to( image_tag(post.name.url), "/posts/#{post.id}") if !post.image_name.thumb.present? %> 4<% end %>
※上記のif文コードではエラーがおきます。
次の項目を質問内に掲載しておかないと正しい回答が得られないかと思います。
・現在発生しているエラー文を丸々
・postsテーブルのカラム情報(migrationファイル)
・thumbsテーブルのカラム情報
・postsとthumbに関連するassociation状況
回答2件
あなたの回答
tips
プレビュー