実現したいこと
投稿をセーブして保存したいです。
そして、投稿が保存されたら、root_pathへ、失敗したら投稿ページへ遷移させたいです。
#発生している問題・エラーメッセージ
NoMethodError in PhotoController#create
undefined method `save' for nil:NilClass
#仮説、試したこと
createメソッドのif分をコメントアウトした際には保存がされました。
なので、if文の中の変数、もしくは、saveの使い方のどちらかがおかしいというところまでは目星がつけられたのですが、そこから変数を変えたりしたのですが、saveのエラーが消えません。
おかしいポイントのご指摘よろしくよろしくお願いします。
該当のソースコード
PhotoController
1 def new 2 @phtoto = Phtoto.new 3 end 4 5 def create 6 Phtoto.create(photo_params) 7 if @photo.save 8 redirect_to root_path 9 else 10 render :new 11 end 12 end 13 14 private 15 def phtoto_params 16 params.require(:phtoto).permit(:title, :concept, :image).merge(user_id: current_user.id) 17 end 18 19end
view
1<%= form_with model: @photo, class: 'form', local: true do |f|%> 2 3 <div class="field"> 4 <%= f.label :title, "タイトル" %><br /> 5 <%= f.text_field :title %> 6 </div> 7 8 <div class="field"> 9 <%= f.label :concept, "説明" %><br /> 10 <%= f.text_area :concept, class: :form__text %> 11 </div> 12 13 <div class="field"> 14 <%= f.label :image, "画像" %><br /> 15 <%= f.file_field :image %> 16 </div> 17 18 <div class="actions"> 19 <%= f.submit "保存する", class: :form__btn %> 20 </div> 21<% end %>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。