Originally, I had the following routes before Live View:
get "/tasks/closed", TaskController, :closed resources "/tasks", TaskController
Which worked great - in
TaskController.Index I show open Tasks. In
TaskController.Closed I show closed Tasks.
However, then I tried the following routes for Live View:
live "/tasks", TaskLive.Index live "/tasks/closed", TaskLive.Index
Which works, but is there’s a couple of problems:
TaskLive.Index.mountthere’s no obvious way to tell which route was chosen
- There isn’t an easy way to reference which particular version I’m after in a call to
I did manage to address these issues by doing the following:
live "/tasks", TaskLive.Index live "/tasks/closed", TaskLive.Index, session: [:closed], as: :closed
:closed is fake - but I can see if
session.closed exists in
as parameter means that I can do one of the following:
live_path( socket, TaskLive.Index ) # Returns "/tasks" closed_path( socket, TaskLive.Index ) # Returns "/tasks/closed"
All of this is a bit hacky. Is there a better way to do this with live routes?