データの一覧表示、追加、編集、削除などができる基本的なページを作成してます。
その中で、追加したデータの編集を行って更新したところ以下のエラーが発生しました。
ActiveRecord::RecordNotFound in CardsController#edit
Couldn't find Card with 'id'=@card
調べてみたところ、idを引き渡して情報を取得しようとしたがidがnillになっている為、このエラーが発生したという感じでしょうか?
対処方法が分からないので助言宜しくお願いします。
controllerのページ
def edit
@card = Card.find(params[:id]) ←この部分が対象となってはいますが。
if request.patch? then
@card.update(card_params)
goback
end
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
追記
Cards_controllerのコードです。
class CardsController < ApplicationController
layout 'cards'
def index @cards = Card.all end def show @card = Card.find(params[:id]) end def add if request.post? then Card.create(card_params) goback else @card = Card.new end end def edit @card = Card.find(params[:id]) if request.patch? then @card.update(card_params) goback end end def delete Card.find(params[:id]).destroy goback end private def card_params params.require(:card).permit(:title, :author, :price, :publisher, :memo) end private def goback redirect_to '/cards' end
end
>>>>>>>>>>>>>>>>>>>>>>>>
追記
edit.html.erb のコードです。
</table> <p class="link"><a href="/cards"><<</a></p><tr> <th>タイトル</th> <td><%= form.text_field :title, { size:40 } %></td> </tr> <tr> <th>著者</th> <td><%= form.text_field :author, { size:40 } %></td> </tr> <tr> <th>価格</th> <td><%= form.number_field :price, { size:10 } %></td> </tr> <tr> <th>出版社</th> <td><%= form.text_field :publisher, { size:40 } %></td> </tr> <tr> <th>コメント</th> <td><%= form.text_area :memo, {cols:40, rows:10} %></td> </tr> <tr> <th></th> <td><%= form.submit "更新" %></td> </tr> <% end %>
あなたの回答
tips
プレビュー