var hello = "Hello"
- Когда вы набираете > hello
в консоли, это не сработает из-за концепции под названием Closure в Javascript. Я нашел эту статью полезной.
window.hello2 = "Hello"
-> Вы назначаете глобальную переменную. Когда вы набираете > window.hello2
в консоли, он выдаст результат, но просто > hello2
не будет работать, и он даст ReferenceError
.
window.hello2
доступно для всех ваших JS код, он глобальный. - Однако не рекомендуется использовать глобальные переменные, используйте переменные в соответствующих функциях.
Кроме того, вы не упомянули то, как вы используете свой pack/home.js
файл.
Если вы включите <%= javascript_pack_tag 'home' %>
в app/views/layouts/application.html.erb
, тогда ваш JS код будет работать в каждом контроллере / представлении (а не только в Home
контроллере .)
Если вы включите <%= javascript_pack_tag 'home' %>
в app/views/home/index.html.erb
, тогда ваш код JS будет работать только в действии home#index
, но он вызывает refre sh.