You can use Tower.js purely on the client side.
The documentation [currently] focuses a lot on generating an app like you would Rails, giving you boilerplate for javascript testing, configuring your server and databases, etc. However, you can just require underscore
and tower
in the browser, build whatever models you need on the client, and connect them through the ajax store to your Rails backend.
<script src="/javascripts/vendor/javascripts/underscore.js"></script>
<script src="/javascripts/vendor/javascripts/tower.js"></script>
Documentation is still needed here (as well as an example), but it works as a client-only MVC. Something like this:
class App extends Tower.Application
@bootstrap: (data) ->
App.Post.load(data.posts) if data.posts
class App.Post extends Tower.Model
@field "title"
@field "body"
And the HTML file to load the JSON string into the model initially
<body>
<script>
App.Post.bootstrap(<%= @posts.to_json %>);
</script>
</body>