ここで何が起こっているのかを理解しようとするのを手伝ってください:
ネストされたスニペットを承認する必要がありますが、承認すると「本が見つかりません」と表示されます。ブラウザの URL が rake ルートと一致しないため、ルートに問題がある可能性があると思います。
誰かが私の手を握って、あなたが子供にするようにこれを説明できたら:)
ID のない書籍が見つかりませんでした
以下は、snippets#approve と before_filter を含むコントローラーです。
class SnippetsController < ApplicationController
before_filter :authenticate_user!
before_filter :find_book
def create
#raise params.inspect
@snippet = @book.snippets.create(params[:snippet])
@snippet.user = current_user
if @snippet.save
redirect_to @book
flash[:success] = "Snippet submitted and awaiting approval."
else
flash[:base] = "Someone else has submitted a snippet, please try again later"
redirect_to @book
end
end
def approve
#raise params.inspect
@snippet = @book.snippets.find(params[:id])
@snippet.update_attribute(:approved, true)
redirect_to admins_path
end
def edit
@snippet = @book.snippets.find(params[:id])
end
def update
@snippet = @book.snippets.find(params[:id])
respond_to do |format|
if @snippet.update_attributes(params[:snippet])
format.html { redirect_to @book, notice: 'Comment was successfully updated.' }
else
format.html { render action: "edit" }
end
end
end
private
def find_book
#raise params.inspect
@book = Book.find(params[:book_id])
end
end
今、私は投稿をしているので、レーキルートがこれを言っていることを理解しています。
/books/:book_id/snippets/:id(.:format)
カスタムルートのルートは次のとおりです。
active_snippet POST /snippets/:id/activate(.:format)
これは、book && snippet :approval のカスタム ルートです。
post "books/:id/activate" => "books#approve", :as => "active_book"
post "snippets/:id/activate" => "snippets#approve", :as => "active_snippet"
現在、ブラウザでこれを取得しています../snippets/2/activate
えーと....私の考えが正しいかどうかわかりません。