有効なルートを持つオブジェクトを破棄することはできません。ブラウザはNo route matches [POST] "/blog/topics/3/posts/1"
を返します。しかし、私は同じリソース上で他のすべてのアクションを実行できます。私のコントローラー、テンプレートはどのようにしてコンソールからオブジェクトを作成して破壊することができますか?ルートは存在しますが、オブジェクトを破棄することはできません。なぜですか?
保存時間-これらの空路はどちらか私の現在の設定の下では動作しません。
- のlink_to([トピック@、@post])http://localhost:3000/blog/topics/3/1/posts/1を返します。
- link_to([@ topic])はhttp://localhost:3000/blog/topics/3/posts/1を返します。 #Stillはここ
を削除しません、私のコントローラである:ここでは
class Blog::PostsController < ApplicationController
before_filter :fetch_topic, except: [:index]
before_filter :fetch_post, except: [:create, :new]
#stuff that works.
..
..
..
def destroy
@post.destroy
respond_to do |format|
format.html { redirect_to blog_topic_posts_url, notice: 'Post deleted.'}
end
#DOES NOT work: redirect_to root_url([:blog, @topic, @post]), notice: 'Post deleted.'
end
private
def fetch_post
@post = @topic.posts.find(params[:id])
end
def fetch_topic
@topic = Topic.find(params[:topic_id])
end
は私のテンプレートです:
<%= link_to 'Destroy', blog_topic_post_path(@topic, @post), method: :destroy, confirm: 'You Sure About This?' %>
私は動詞の動作を混乱させ、私を怠惰にしました。 – rhodee