画像投稿ページを作成してい、@photopostをコントローラーで定義してform_forで新規作成するために引数に入れているのですがArgumentErrorとなってしまいエラーの詳細としてFirst argument in form cannot contain nil or be emptyと表示され引数の中が空か定義されていないとでてしまいます。
**画像投稿用のパーシャル** <%= form_for(@photopost) do |f| %> ← ここのインスタンスの中身が空? インスタンスの中身が空? <span class="picture"> <%= f.file_field :picture %> </span> <div class="field"> <%= f.text_area :content, placeholder: "コメントの追加" %> </div> <%= f.submit "投稿", class: "btn btn-success" %> <% end %>
**画像投稿用のコントローラー** class PhotopostsController < ApplicationController before_action :authenticate_user!, only: [:create, :destroy] before_action :correct_user, only: :destroy def create @photopost = current_user.photoposts.build(photopost_params) if @photopost.save flash[:success] = "画像が投稿できました!" redirect_to mypage_url(current_user) else render 'staticpages/home' end end def destroy @photopost.destroy flash[:success] = "投稿を削除しました" redirect_to request.referrer || root_url end private def photopost_params params.require(:photopost).permit(:content, :picture) end def correct_user @photopost = current_user.photoposts.find_by(id: params[:id]) redirect_to root_url if @photopost.nil? end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。