At the bottom of app/assets/javascripts/application.js.coffee.erb
page =
ready: (initializer)->
$(document).ready ->
initializer(application.page)
window.<%= Rails.application.class.parent_name%> ?=
page: page
Somewhere in app/helpers
def include_action_on_ready_script
initializer_path = "#{controller.controller_path}/#{controller.action_name}.js"
if Rails.application.assets.find_asset(initializer_path)
javascript_include_tag asset_path(initializer_path)
end
end
Somewhere in app/views/layouts
= javascript_include_tag 'vendor', 'application'
include_action_on_ready_script
Somewhere in app/assets/page_initialzers/:controller_path/:action_name
MyApp.page.ready ->
# so much initialization