In my quest to practice good style, I'm a bit stumped on the following.
Assume an app that lets a user visualize recent web activity on various domains ("user has many domains"). In ordinary RESTful style, the path /user/:user_id/domain invokes 'index' and lists all the domains, the path /user/:user_id/domain/:domain_id shows particulars about one domain.
Our app needs a 'display graph' button on the 'show' page to plot historical activity for a particular domain. The plot page has lots of options (set time scale, filter different kinds of packets, etc), and I can imagine these being tacked onto a path as query strings.
I'm a bit stumped as to how this really fits into RESTful style. Would you create a Plot controller ("domain has one plot") and control it with a path like /user/:user_id/domain/:domain_id/plot?plotoptions... ?
Also, the app calls for radically different page layouts depending on selected display style (e.g. plot vs table view) -- can one controller invoke multiple views? Or must you create one controller per view?
And finally, would you back the controller with a Plot model? Except for caching complex plots, I don't see a real motivation for db persistence, unless, of course, the Rails framework really wants a Plot model to go with a Plot controller.
I welcome your insights...
- ff