# application.html.erb # use either the meta tag or body's data attributes. <head> ... <%= tag :meta, name: :psj, action: action_name, controller: controller_name %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> ... </head> <%= content_tag :body, data: { action: action_name, controller: controller_name } do %> ... <% end %>





# app/javascripts/init.coffee class Page controller: () => $('meta[name=psj]').attr('controller') # $('body').data('controller')

action: () =>

$('meta[name=psj]').attr('action')

# $('body').data('action')



@page = new Page



# Javascript equivalent



var Page, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };



Page = (function() { function Page() { this.action = bind(this.action, this); this.controller = bind(this.controller, this); } Page.prototype.controller = function() { return $('meta[name=psj]').attr('controller'); }; Page.prototype.action = function() { return $('meta[name=psj]').attr('action'); }; return Page; })(); this.page = new Page;





# visitors.coffee $(document).on 'turbolinks:load', -> return unless page.controller() == 'visitors' && page.action() == 'index' # return unless $('meta[name=psj]').attr('controller') == 'visitors' # && $('meta[name=psj]').attr('action') == 'index'

# return unless $('body').data('controller') == 'visitors' && $('body').data('action') == 'index'

$('main').append '<li>Hello from visitors</li>'



# Javascript equivalent



$(document).on('turbolinks:load', function() {



if (!(page.controller() === 'visitors' && page.action() === 'index')) { return; } return $('main').append('<li>Hello from visitors</li>'); });





# app/javascripts/users/index.coffee $(document).on 'turbolinks:load', -> return unless page.controller() == 'users' && page.action() == 'index' $('main').append '<li>Hello from users index</li>' # Javascript Equivalent



$(document).on('turbolinks:load', function() {



if (!(page.controller() === 'users' && page.action() === 'index')) { return; } return $('main').append('<li>Hello from users index</li>'); });





# app/javascripts/users/users.coffee $(document).on 'turbolinks:load', -> return unless page.controller() == 'users' $('main').append '<li>Hello from users controller</li>' # Javascript Equivalent



$(document).on('turbolinks:load', function() {



if (page.controller() !== 'users') { return; } return $('main').append('<li>Hello from users controller</li>'); });