app/views/users/show.html.erb で下記のように記述し
html
1<% if @user.microposts.any? %> 2 <%= @microposts.each do |micropost| %> 3 <div class="col-md-4 col-sm-4"> 4 <a href="#" class="thumbnail"> 5 <div class="image"> 6 <img src="<%= micropost.picture.url %>" 7 class="img img-responsive full-width" /> 8 </div> 9 </a> 10 </div> 11 <% end %> 12 <%= will_paginate @microposts %> 13 <% end %> 14
あるユーザーの@microposts
を集めて画像を展開していきたいのですが途中から画像が表示されず
[#<Micropost id: 40, content: "Recusandae ut eius est cupiditate.", user_id: 1, created_at: "2019-10-21 15:44:31", updated_at: "2019-10-21 15:44:31", picture: "picture40.jpg">, #<Micropost id: 39, content: "Fugit odit dicta suscipit saepe.", user_id: 1, created_at: "2019-10-21 15:44:30", updated_at: "2019-10-21 15:44:30", picture: "picture39.jpg">, #<Micropost id: 38, content: "Quia eaque omnis repudiandae officiis.", user_id: 1, created_at: "2019-10-21 15:44:30", updated_at: "2019-10-21 15:44:30", picture: "picture38.jpg">, #<Micropost id: 37, content: "Atque est cum odio id.", user_id: 1, created_at: "2019-10-21 15:44:30", updated_at: "2019-10-21
のようにオブジェクトそのものがテキストとして表示されてしまいます。
usersコントローラーは
def show @user=User.find_by(id: params[:id]) @microposts = @user.microposts.paginate(page: params[:page]) end
のように記述
サンプルデータとして users.yml 内に
30.times do |n| content = Faker::Lorem.sentence(word_count: 5) picture = File.open("./app/assets/images/picture#{n+1}.jpg") user = User.find_by(id: n+1) user.microposts.create!(content: content, picture: picture ) end user = User.find_by(id: 1) 10.times do |n| content = Faker::Lorem.sentence(word_count: 5) picture = File.open("./app/assets/images/picture#{n+31}.jpg") user.microposts.create!(content: content, picture: picture ) end
picture1.jpgからpicture40.jpgまで該当のファイルに保存しており、サンプルユーザーで
画像付きの投稿のサンプルデータを作りたいと思っています。ちなみにサンプルユーザーは99人分作成してあります。
可能性だけでも教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/22 05:33