Are you using Rails 4?   (Find out by doing rails -v in your console)
This issue is probably due to the newly added Turbolinks gem.  It makes your application behave like a single page JavaScript application.  It has a few benefits (it's faster), but it unfortunately breaks some existing events like $(document).ready() because the page is never reloaded.  That would explain why the JavaScript works when you directly load the URL, but not when you navigate to it through a link_to.
Here's a RailsCast about Turbolinks.
There are a couple solutions.  You can use jquery.turbolinks as a drop-in fix, or you can switch your $(document).ready() statement to instead use the Turbolinks 'page:change' event:
$(document).on('page:change', function() {
    // your stuff here
});
Alternatively, you could do something like this for compatibility with regular page loads as well as Turbolinks:
var ready = function() {
    // do stuff here.
};
$(document).ready(ready);
$(document).on('page:change', ready);
If you are using Ruby on Rails >5 (you can check by running rails -v in the console) use 'turbolinks:load' instead of 'page:change'
$(document).on('turbolinks:load', ready);