Javascript functions in the rails 4 asset pipeline tree -
i'm trying utilize javascript function via chrome console when put javascript function within rails asset pipeline manifest. here steps i've take create , setup simple rails 4.2.4 app
$ rails new javascriptexample $ cd javascriptexample $ rails g scaffold bear name:string $ rake db:migrate
i edit app/assets/javascripts/bears.coffee
, add console log , function.
console.log("asset pipeline sucks") square = (x) -> x * x
then fire server
$ rails s
i visit localhost:3000/bears
, in chrome console see first line of code has worked. when attempt command square(5);
in console receive error uncaught referenceerror: square not defined(…)
why can not way when function loaded application.js
?
this coffeescript compiled javascript
(function() { var square; console.log("asset pipeline sucks"); square = function(x) { return x * x; }; }).call(this);
from this: the var keyword reserved in coffeescript, , trigger syntax error if used. local variables created implicitly default
, not available in global scope expectation
to make work, can instead:
console.log("asset pipeline sucks") @square = (x) -> x * x
note have @
, compiled javascript be:
(function() { console.log("asset pipeline sucks"); this.square = function(x) { return x * x; }; }).call(this);
Comments
Post a Comment