前提・実現したいこと
プログラミング初心者です。現在Progateで作成したTwitterのようなアプリに新しく画像投稿機能をつけようとしています。そしてなんとか画像投稿の機能をつけた後で投稿してみると”User can't be blank”が表示されて投稿できなくなりました。
発生している問題・エラーメッセージ
投稿ボタンを押すとUser can't be blankが表示される。
該当のソースコード
#new.html.erb
<div class="main posts-new"> <div class="container"> <h1 class="form-heading">投稿する</h1> <%= form_for :post, url: '/posts/create' do |f| %> <div class="form"> <div class="form-body"> <% @post.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <% end %> <%= f.text_area :content %> <%= f.submit %> <%= f.label "画像をアップロード" %><br><%= f.file_field :image %> </div> </div> <% end%> </div> </div>
#show.html.erb <div class="container"> <div class="posts-show-item"> <div class="post-user-name"> <img src="<%= "/user_images/#{@user.image_name}" %>"> <%= link_to(@user.name, "/users/#{@user.id}") %> </div> <p> <%= @post.content %> </p> <div class="post-time"> <%= @post.created_at %> </div> <% if Like.find_by(user_id: @current_user.id, post_id: @post.id) %> <%= link_to("/likes/#{@post.id}/destroy",{method: "post"}) do %> <span class="fa fa-heart like-btn-unlike"></span> <% end %> <% else %> <%= link_to("/likes/#{@post.id}/create",{method: "post"}) do %> <span class="fa fa-heart like-btn"></span> <% end %> <% end %> <%= @likes_count %> <% if @post.user_id == @current_user.id %> <div class="post-menus"> <%= link_to("編集", "/posts/#{@post.id}/edit") %> <%= link_to("削除", "/posts/#{@post.id}/destroy", {method: "post"}) %> </div> <% end %> </div> </div> </div>
#posts.controller.rb def show @post = Post.find_by(id: params[:id]) # 変数@userを定義してください @user = @post.user @likes_count = Like.where(post_id: @post.id).count end def new @post = Post.new end def create @post = Post.new( post_params ) if @post.save flash[:notice]="投稿を作成しました" redirect_to("/posts/index") else render("posts/new") end end private def post_params params.require(:post).permit(:content, :image) end
試したこと
過去の質問で似たようなものを探してみたのですが見当たらなかったので質問させていただきました。
ご回答いただけると幸いです!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/22 01:57