Skip to content Skip to sidebar Skip to footer

How To Namespace Our JS For Use With The Rails Asset Pipeline

I understand the reasoning behind the rails 3.1 asset pipeline: we compile all the JS in a neat, cacheable file to improve performance. Great we want that. However, loading everyth

Solution 1:

Here is a way to namespace everything on a controller/action level

You basically declare you body as such

<body data-controller="<%= controller_name %>" data-action="<%= action_name %>">

And then these methods are called (which each have a series of methods -- so if you need something on every page, it's in common/init. Or on all users actions, that's on users/init. Or only the users show page? that's users/show.

SITENAME.common.init();
SITENAME.users.init();
SITENAME.users.show();

I've used this and it works very very well.


Solution 2:

JsSpace.on('users', {
  index: function(){
    console.log('index action of users controller');
  }
});

that pattern implemented by render controller and action into body attribute then fetch them and execute the match function. js-namespace-rails


Post a Comment for "How To Namespace Our JS For Use With The Rails Asset Pipeline"