データベースのupdateの処理を書いていますが、putしようとしているのですが、なぜかNo route matches [POST]と出てしまいます。
やろうとしていることは、updateなのに、なぜPOSTについて言われているのかわかりません。
宜しくお願い致します。
ルーティング
rb
1#rotues.rb 2 get "/archives",to: 'archives#index' ,as: "archives_index" 3 get "archives/show/:round_id",to: 'archives#show' ,as: 'score_card' 4 get "archives/edit/:round_id",to: 'archives#edit' ,as: 'scorecard_edit' 5 get "archives/edit/:round_id/:hole_number",to: 'archives#edit_score' ,as: 'edit_hole_score' 6 get "archives/edit_score/:round_id/:hole_number",to: 'archives#hole_score_edit' ,as: 'score_update' 7 post "archives/edit/:round_id/:hole_number",to: 'archives#update' ,as: 'hole_score_update'
rb
1#archives_controller.rb 2class ArchivesController < ApplicationController 3 def index 4 @scores = Score.all 5 @score_round = Score.distinct.pluck(:course, :user_id, :round_id) 6 7 end 8 def show 9 # @score_card = Score. 10 @coursename = params[:round_id] 11 @score_card_score = Score.where(round_id: params[:round_id]) #ホールごとのスコアを取得 12 @score_card_course = Score.where(round_id: params[:round_id]).first #ラウンドしたコース、日付を取得 13 @score_sum = Score.where(round_id: params[:round_id]).sum(:hole_score) 14 end 15 def edit 16 # @score_card = Score. 17 @coursename = params[:round_id] 18 @score_card_score = Score.where(round_id: params[:round_id]) #ホールごとのスコアを取得 19 @score_card_course = Score.where(round_id: params[:round_id]).first #ラウンドしたコース、日付を取得 20 @score_sum = Score.where(round_id: params[:round_id]).sum(:hole_score) 21 end 22 def edit_score 23 @hole_number = params[:hole_number] 24 @round_id = params[:round_id] 25 @score = Score.find_by(round_id: params[:round_id], hole_number: params[:hole_number]) 26 end 27 def hole_score_edit 28 @score = Score.find_by(round_id: params[:round_id], hole_number: params[:hole_number]) 29 end 30 def create 31 end 32 def update 33 @score = Score.find_by(round_id: params[:round_id], hole_number: params[:hole_number]) 34 @score.update(hole_score: @score) 35 redirect_to score_card_path 36 end 37end 38
rb
1#edit_score.html.erb 2<%= form_with url:hole_score_update_path do |f| %> 3 <%= f.text_field :hole_score %> 4 <%= f.submit "編集する" %> 5<% end %> 6
rb
1#edit.html.erb 2<h1>スコアカード</h1> 3 4<p>ラウンドID: <%= @coursename %></p> 5<p> <%= @score_card_score %></p> 6<p>プレイしたコース: <%= @score_card_course.course %></p> 7<p>プレイヤー名: <%= @score_card_course.user.name %></p> 8<p>プレイ日時: <%= @score_card_course.created_at.strftime('%Y/%m/%d') %></p> 9<p>トータルスコア: <%= format('%+d', @score_sum + 72) %></p> 10 11<% @score_card_score.each do |m| %> 12<span> <%= m.hole_number %>H: </span> 13<span> <%= format('%+d',m.hole_score) %> </span> 14<span> <%= link_to "編集", edit_hole_score_path(round_id: m.round_id, hole_number: m.hole_number) %> </span><br> 15<% end %> 16 17
回答2件
あなたの回答
tips
プレビュー