前提・実現したいこと
Ruby on Railsを利用して、ブログ記事を投稿・編集・更新・削除できるウェブサイトを作っています(ドットインストールのRuby on Rails5入門 「#20記事を更新してみよう」) 開発環境はAWS Cloud9を使用
発生している問題・エラーメッセージ
edit画面に飛び、内容を編集した後に「Update Post」のボタンを押すとこのようなエラーが出ます。別のタイトルをeditした場合は、「posts.2」の「2」部分が他の数字で表示されます。
edit.html.erb
Ruby
1<h2>Edit Post</h2> 2<%= form_for @post, url: posts_path(@post) do |f| %> 3<p> 4 <%= f.text_field:title, placeholder: 'enter title' %> 5 <% if @post.errors.messages[:title].any? %> 6 <span class="error"><%= @post.errors.messages[:title][0] %></span> 7 <% end %> 8</p> 9 10<p> 11 <%= f.text_area:body, placeholder: 'enter body text' %> 12 <% if @post.errors.messages[:body].any? %> 13 <span class="error"><%= @post.errors.messages[:body][0] %></span> 14 <% end %> 15</p> 16 17<p> 18 <%= f.submit %> 19</p> 20<% end %>
posts_controller.rb
Ruby
1class PostsController < ApplicationController 2 3 def index 4 @posts = Post.all.order(create_at: 'desc') 5 end 6 7 def show 8 @post = Post.find(params[:id]) 9 end 10 11 def new 12 @post = Post.new 13 end 14 15 def create 16 @post = Post.new(post_params) 17 18 if @post.save 19 redirect_to posts_path 20 else 21 #render plain: @post.errors.inspect 22 render 'new' 23 end 24 end 25 26 def edit 27 @post = Post.find(params[:id]) 28 end 29 30 def update 31 @post = Post.find(params[:id]) 32 if @post.update(post_params) 33 redirect_to posts_path 34 else 35 render 'edit' 36 end 37 end 38 39end 40 41 42private 43 def post_params 44 params.require(:post).permit(:title, :body) 45 end 46
routes.rb
Ruby
1Rails.application.routes.draw do 2 resources :posts 3 root 'posts#index' 4end 5
試したこと
何度か動画を見直し、説明の通りにコードを書いていますが、直らないので良ければご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。