Вот ответ на первый вопрос: в application.coffee
нет ничего особенного, он все равно компилируется в javascript.Просто убедитесь, что вы получаете доступ к gon.some_variable
в событии DOM Ready:
$->
alert gon.alert
Но тогда вы столкнетесь с другой проблемой - как определить, какая переменная принадлежит какому контроллеру / действию.Более того, gon.alert
будет неопределенным, если вы визуализируете другой контроллер / действие.
Поэтому вам необходимо установить условие в вашем application.coffee
, которое будет выполняться только на определенной странице (контроллер / действие).Например, вы можете положиться на обнаружение идентификаторов элементов:
$->
if $('#pages_controller_show').length
alert gon.alert
Ваш show.haml
, конечно, должен включать элемент с id="pages_controller_show"
.