It heavily depends on what kind of web application you are building. Is it a page-like application with very little dynamic elements (like an online catalog) or is it an application -like application (yes, that sounds stupid)?
What do I mean by that? Well, should the application enable the user to do a lot of things in the browser that immediately update the view without reloading the page? Maybe a todo-list application or an application that lets the user configure the next car they want to buy or something like that? Then you should just load the page once and use JavaScript to communicate with your Rails backend and update your view. Preferably you should use a framework like SproutCore, Cappuccino, or Backbone to help you keep your JavaScript application organized.
This is a somewhat dated but still relevant example of using Cappuccino with Rails by the great Thomas Balhazar.
This shows you how to use SproutCore 2.0 with a Rails backend
And finally, this shows you how to use Backbone with a Rails backend.
Of course you can also use JavaScript on the whole stack with node.js and frameworks like SocketStream. That way you can use JavaScript both on the client and on the server. But those frameworks might not offer as many conveniences as Ruby on Rails at this point.
So it comes down to deciding what kind of application you are building.