前提・実現したいこと
「~~~~/posts/1/edit」
のように個別のIDを取得できるようにしたいのですが以下のエラーメッセージが発生しています。
初心者のためコードが読みづらいかと思い申し訳ないのですが、
解決方法がわかる方いらしたら教えてください。
発生している問題・エラーメッセージ
ActiveRecord::RecordNotFound in PostsController#edit Couldn't find Post with 'id'=:id
ルーティング
Rails.application.routes.draw do resources :posts, only: [:index, :create, :edit, :update, :destroy] end
コントローラー
class PostsController < ApplicationController def index @posts = Post.all.select(:diary).order(created_at: :desc) end def new @post = Post.new end def edit @id = Post.find(params[:id]) end def create Post.create(create_params) redirect_to action: :index end def destroy end def update end private def create_params params.require(:post).permit(:diary) end end
ビュー
<h1>編集</h1> <div class="content"> <%= @id.diary %> </div>
editを呼び出すviewを載せてください
それは一部ですね?
必要な情報がわからないので、どこがキモかわからなければ全体を載せてください
ん?
もしかしたら、def edit が呼び出すviewなのかな?
それではなく、 def edit「を」呼び出すviewです
一部ではなくて、これしか現時点ではビューに記載しておりません。。。
このviewでは controllerを呼び出す部分がないですが?
awsで作業をしており、例えば以下はindexのビューですがこちらはきちんと表示されているのですが…。
indexビュー
<h1>TOP</h1>
<% @posts.each do |post| %>
<div class="postlist">
<%= post.diary %>
<div class="button">
<a href="#" class="btn">SHOW</a>
<%= link_to "EDIT",'/posts/:id/edit' %>
<a href="#" class="btn">DELETE</a>
</div>
</div>
<% end %>
回答1件
あなたの回答
tips
プレビュー