#困っていること
Rails勉強中の初心者です。
新規投稿・閲覧・編集・削除などができる簡単なアプリケーションを作成して練習しています。
投稿機能は実装済みで、投稿されたデータを編集して更新する機能をつけたいのですが、以下のエラーが出てしまい、うまくいきません。ググりましたが具体的な解決策を見つけられませんでしたので、力を貸して欲しいです(;_;)
よろしくお願い致します。
#エラーメッセージ
Routing Error
No route matches [PATCH] "/posts1"
Request
Parameters:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"Aae+JE3EbqmhfvV6wkf826/hCpF0Po2tfxlFURyYv7pDTOl1QZdKXxuDT2G0HJTiCKG9i6a63WA2hd1ueAsjxw==",
"post"=>{"title"=>"投稿テスト", "body"=>"投稿"},
"commit"=>"Update Book"}
##routes.rb
ruby
1 2Rails.application.routes.draw do 3 #新規投稿・投稿一覧 4 get 'posts/new' => 'posts#new' 5 6 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 7 get '/' => 'root#top' 8 post '/posts' => 'posts#create' 9 get 'posts:id' => 'posts#show', as: 'post' 10 get 'posts/:id/edit' => 'posts#edit', as: 'edit_post' 11 patch '/posts/:id' => 'posts#update', as: 'update_post' 12end
##posts_controller.rb
ruby
1class PostsController < ApplicationController 2 def new 3 @post = Post.new 4 @posts = Post.all 5 end 6 def create 7 # ストロングパラメーターを使用 8 post = Post.new(post_params) 9 # DBへ保存する 10 post.save 11 # 新規投稿画面へリダイレクト 12 redirect_to '/posts/new' 13 end 14 15 def show 16 @post = Post.find(params[:id]) 17 end 18 19 def edit 20 @post = Post.find(params[:id]) 21 end 22 23 def update 24 post = Post.find(params[:id]) 25 post.update(post_params) 26 redirect_to post_path(post.id) 27 end 28 29 private 30 def post_params 31 params.require(:post).permit(:title, :body) 32 end 33end 34
##new.html.erb
html
1<h1>Books</h1> 2<!--テーブル開始--> 3<table> 4<thead> 5 <tr> 6 <th>title</th> 7 <th>body</th> 8 </tr> 9</thead> 10 11<tbody> 12<% @posts.each do |post| %> 13 <tr> 14 <td> 15 <%= post.title %> 16 </td> 17 <td> 18 <%= post.body %> 19 </td> 20 <td> 21 <%= link_to "edit",edit_post_path(post.id)%> 22 <%= link_to "show",post_path(post.id)%> 23 </td> 24 </tr> 25<% end %> 26</tbody> 27</table> 28<!--テーブル終了--> 29 30<h1>NewBook</h1> 31<!-- form_for部分 --> 32<%= form_for(@post) do |f| %> 33 <h4>title</h4> 34 <%= f.text_field :title %> 35 <h4>body</h4> 36 <%= f.text_area :body %> 37 <%= f.submit 'Create Book' %> 38<% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/25 15:04
2018/02/25 15:13