私はRailsを使って簡単なブログアプリケーションを作ろうとしていました。私は "新しい投稿を作成する"、 "投稿を編集する"のような機能を追加しました。削除機能も追加したかったのです。しかし、それは動作しません。私を助けてください!ここでなぜ投稿削除機能が動作しないのですか?
は私の "posts_controller.rb" ファイル
class PostsController < ApplicationController
def index
@posts = Post.all.order('created_at DESC')
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
@post.save
if @post.save
redirect_to @post
else
render 'new'
end
end
def show
@post = Post.find(params[:id])
end
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
if @post.update(params[:post].permit(:title, :body))
redirect_to @post
else
render 'edit'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to post_path
end
private
def post_params
params.require(:post).permit(:title, :body)
end
end
"show_html.erb" ファイルです:
<div id="post_content">
<h1 class="title">
<%= @post.title %>
</h1>
<p class="date">
Submitted <%= time_ago_in_words(@post.created_at) %> Ago
| <%= link_to 'Edit', edit_post_path(@post) %>
| <%= link_to 'Delete', post_path(@post), method: :delete,
data: { confirm: 'Are you sure?' } %>
</p>
<p class="body">
<%= @post.body %>
</p>
</div>
そして、それは私にこのエラーました:PostsControllerの番号ショーで のActiveRecord :: RecordNotFoundを 'id' = 7の投稿が見つかりませんでした 抽出元(#22行目):
def show
@post = Post.find(params[:id])
end
javascriptエラーのため、要求がGETとして送信されています。 Railsは 'jquery-ujs'を使ってリンクから非GETメソッドリクエストを送信します。ブラウザのコンソールでエラーを確認してください。あなたは '<%= button_to 'Delete'、@ post、method::delete、data:{confirm: '本当ですか?' }%> 'はJSに依存しません。 – max
この質問は毎日現れますが、私は良い重複したターゲットを見つけることができません。何か案は? – max
どうもありがとうございました。私はボタンのソリューションを試してみると、私はあなたが動作しない場合は書き込みます。 –