railsで画像投稿機能を作っているのですが、画像が表示できずエラーが出ている状態です。
一応編集をしてみたいのですが、一緒のエラーが出ている状態です。
index
1 2<div class="main posts-index"> 3 <div class="container"> 4 <% @posts.each do |post| %> 5 <div class="posts-index-item"> 6 <div class="post-left"> 7 <!-- ユーザーの画像が表示されるように、以下のsrcに値を追加してください --> 8 9 <img src="<%= "/#{post.user.image_name}" %>"> 10 </div> 11 <div class="post-right"> 12 <div class="post-user-name"> 13 <!-- link_toメソッドを用いて、ユーザー詳細ページへのリンクを作成してください --> 14 15 </div> 16 <%= link_to(post.content, "/posts/#{post.id}") %> 17 18 <% if @post.photo? %> <!-- アップロード画像がある場合に実行する --> 19 <p> 20 <strong>photo:</strong> 21 <%= image_tag @post.photo.url %><!-- userインスタンスの画像ファイルのURLを取得し表示 --> 22 </p> 23 <% end %> 24 25 </div> 26 27 </div> 28 29 <% end %> 30 </div> 31</div>
ruby
1#app/controller/posts_controller 2class PostsController < ApplicationController 3 before_action :authenticate_user 4 before_action :ensure_correct_user, {only: [:edit, :update, :destroy]} 5 6 def post_params 7 params.require(:post).permit(:photo) # 変更後 8 end 9 10 11 def index 12 @posts = Post.all.order(created_at: :desc) 13 end 14 15 def show 16 @post = Post.find_by(id: params[:id]) 17 @user = @post.user 18 # 変数@likes_countを定義してください 19 @likes_count = Like.where(post_id: @post.id).count 20 end 21 22 def new 23 @post = Post.new 24 end 25 26 def create 27 @post = Post.new( 28 content: params[:content], 29 user_id: @current_user.id, 30 post_image: nil) 31 @post.save 32 33 if @post.save 34 35 if params[:post_image] 36 @post.post_image = "#{@post.id}.jpg" 37 image = params[:post_image] 38 File.binwrite("public/post_images/#{@post.post_image}",image.read) 39 end 40 41 flash[:notice] = "投稿を作成しました" 42 redirect_to("/posts/index") 43 else 44 render("posts/new") 45 end 46 end 47 48 49 def edit 50 @post = Post.find_by(id: params[:id]) 51 end 52 53 def update 54 @post = Post.find_by(id: params[:id]) 55 @post.content = params[:content] 56 if @post.save 57 flash[:notice] = "投稿を編集しました" 58 redirect_to("/posts/index") 59 else 60 render("posts/edit") 61 end 62 end 63 64 def destroy 65 @post = Post.find_by(id: params[:id]) 66 @post.destroy 67 flash[:notice] = "投稿を削除しました" 68 redirect_to("/posts/index") 69 end 70 71 def ensure_correct_user 72 @post = Post.find_by(id: params[:id]) 73 if @post.user_id != @current_user.id 74 flash[:notice] = "権限がありません" 75 redirect_to("/posts/index") 76 end 77 end 78 79end 80
あなたの回答
tips
プレビュー