8

Ruby on Rails ガイド、つまりhttp://guides.rubyonrails.org/layouts_and_rendering.htmlの「レイアウトとレンダリング」トピックを勉強しています。

redirect_toインスタンス変数をメソッドに渡すことについて混乱しています。これはどのように可能ですか?redirect_to別の Web ページまたは URL へのリダイレクトに関連すると考えました。

ガイドに記載されている例では、次のように述べています。

2.2.2 アクションのビューのレンダリング

同じテンプレート内の別のアクションに対応するビューをレンダリングする場合は、ビューの名前で render を使用できます。

def update
  @book = Book.find(params[:id])
  if @book.update_attributes(params[:book])
    redirect_to(@book)
  else
    render "edit"
  end
end

レンダリングの「編集」は完全に理にかなっています。その新しいフォームを再度レンダリングします。しかし、世界で何が起こっているのredirect_to(@book)でしょうか? それは正確には何をレンダリングし、本のオブジェクトはどのようにリダイレクトされるのでしょうか? ところで、本のモデルには列、名前、著者、ページなどがあります...

4

2 に答える 2

19

ドキュメントへのリダイレクト

redirect_to(options = {}, response_status = {}) オプションで指定されたターゲットにブラウザをリダイレクトします。 レコード- URL は、そのレコードの名前付き URL を参照するオプションを指定して url_for を呼び出すことによって生成されます。

したがって、いつ行うかはredirect_to(@book) @bookid.

したがって、関連付けられたレコード (この場合は @book)の showメソッドがテンプレートとして使用されます。

routes.rb上記に加えて、これらのパスを定義するファイルを見ると、

resources :books

現在、このルートは基本的に次のように変換されています(実行して確認できますrake routes

    books GET    /books(.:format)                   books#index
          POST   /books(.:format)                   books#create
 new_book GET    /books/new(.:format)               books#new
edit_book GET    /books/:id/edit(.:format)          books#edit
     book GET    /books/:id(.:format)               books#show
          PUT    /books/:id(.:format)               books#update
          DELETE /books/:id(.:format)               books#destroy

book GET /books/:id books#show- を実行すると一致することに注意してくださいredirect_to(@book)

于 2013-01-06T04:01:28.177 に答える
0

「/books/65」などの書籍にリダイレクトされます

于 2013-01-06T03:53:04.903 に答える