Polymorphic Path Helpers
January 27, 2017 ยท View on GitHub
Underlying many of the path helpers that we use day to day when building out
the views in our Rails apps are a set of methods in the
ActionDispatch::Routing::PolymorphicRoutes
module.
The #polymorphic_path method given an instance of a model will produce the
relevant show path.
> app.polymorphic_path(Article.first)
Article Load (0.5ms) SELECT "articles".* FROM "articles" ORDER BY "articles"."id" ASC LIMIT 1
=> "/articles/2"
Given just the model's constant, it will produce the index path.
> app.polymorphic_path(Article)
=> "/articles"
Additionally, there are variants with edit_ and new_ prefixed for
generating the edit and new paths respectively.
> app.edit_polymorphic_path(Article.first)
Article Load (0.6ms) SELECT "articles".* FROM "articles" ORDER BY "articles"."id" ASC LIMIT 1
=> "/articles/2/edit"
> app.new_polymorphic_path(Article)
=> "/articles/new"