IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

Rails5.2 の redirect_to のドキュメントを読んでみる

f:id:matt-note:20181018130847p:plain

参考:ActionController::Redirecting

 

上記のように、redirect_to の引数に渡すオプションとして、Record と書かれている。Record を渡す際は、url_for を内部で使っているとのこと。

とにかく、redirect_to @post のように、レコードを渡すと、レコードに対応する named URL を参照するとのこと。

参考:ActionDispatch::Routing::PolymorphicRoutes のドキュメントを読んでみる - IT技術にまつわる実験ノート

 

 

PolymorphicRoutes は、以下のパスで定義されている

f:id:matt-note:20181018140650p:plain

参考:rails/polymorphic_routes.rb at fc5dd0b85189811062c85520fd70de8389b55aeb · rails/rails · GitHub

 

その PolymorphicRoutes は ActionView::RoutingUrlFor で require されている

f:id:matt-note:20181018135624p:plain

参考:rails/routing_url_for.rb at fc5dd0b85189811062c85520fd70de8389b55aeb · rails/rails · GitHub

 

ActionView::RoutingUrlFor の url_for は、以下のようになっている

f:id:matt-note:20181018150444p:plain

f:id:matt-note:20181018150453p:plain

f:id:matt-note:20181018150523p:plain

f:id:matt-note:20181018150532p:plain

参考:ActionView::RoutingUrlFor

 

とにかく、上記のように url_for メソッドの引数に @workshop を渡すと、@workshop.to_param を呼び出して、id の値を返すことで、/workshops/5 といった個別の URL を作成するように処理されているとのこと。

 

参考:Rails5.2 の to_param メソッドのドキュメントを読んでみる - IT技術にまつわる実験ノート