rails polymorphic_urlでオブジェクトのurlを取得する

url_forの中で使われているpolymorphic_urlというメソッドがありまして、便利。

これにモデルのインスタンス、配列、ハッシュ等を渡すと、urlにしてくれる。
たとえば、

1
2
3
user = User.first

polymorphic_url(user)

とすると、user_url(user)と同等のurlが帰ってくる。

他にも、

1
2
3
4
5
polymorphic_url(User)
# => users_url

polymorphic_url([:admin, User])
# => admin_users_url

などなど、いろいろできる。

でもさ、url_for使えば一緒じゃね!?
と思うかもしれないが、polymorphic_pathを直接使うことにより、polymorphic_pathのoptionを使うことができるわけです。