My friend Ben Willis and I have developed a gem for the versioning of Rails 
views.  
https://github.com/bwillis/versioncake

The versioning is done by the naming convention.  Image the following 
series of files :

show.v3.json.jbuilder
show.v2.json.jbuilder
show.v1.json.jbuilder

create.v2.json.jbuilder
create.v1.json.jbuilder

The developer pre-defines all view versions in their config.  When a 
specific view version is specified (via a header or request param) , if the 
version of that view exists, it is rendered, otherwise, the request 
_degrades_ to the previous version.  

This makes it really handy for APIs/Jbuilder views.  For example, if you 
defined a new version for your API, e.g. v3, yet all other actions remain 
the same, the degradation will automatically select the appropriate 
backward compatible view (v2 for the create view above). 

The versioning functionality is passive meaning that if the version file 
extensions aren't utilized, the end user (especially beginners) will not 
know that the functionality exists.

Our end goal is to merge and submit a pull request for Rails core.

Would love to hear everyone's thoughts.  

Jim Jones
http://www.github.com/aantix

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-core/-/9POep66BvoMJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to