ember-rails icon indicating copy to clipboard operation
ember-rails copied to clipboard

Naming Collision with Rails' application.js

Open p886 opened this issue 10 years ago • 4 comments

The issue arises when you run rails generate ember:bootstrap in a rails project. Rails provides the application.js file which the sprockets gem uses as a manifest. The ember-rails gem bootstraps the application with a applications.js.coffee file which gets preprocessed to application.js. Thus we end up with two application.js files. Sprockets will only use one and it seems to choose the one which rails provided. This means the line window.EmberTest = Ember.Application.create() never gets run and window.EmberTest never gets defined and I'm getting the javascript error: Uncaught ReferenceError: AppName is not defined.

The workaround is to rename application.js.coffee to something else. When I renamed it to application_ember.js.coffee everything worked fine.

To see the bug in action I created a rails project in which you can see both the bug and the workaround. I haven't seen any mention of this naming collision so far. Did I do something wrong or is this really a bug?

Some stats: Rails: v4.0.0 Ember-Rails: v.0.14.1 Ember-Source: v.1.3.0

p886 avatar Feb 10 '14 08:02 p886

I was able to replicate this issue as well. It took me a while to figure out that it was a naming collision. My solution was also to rename the application.js.coffee to something else.

fmendez avatar Mar 26 '14 03:03 fmendez

I also had this issue. However I also experienced App is not defined and Ember is not defined errors also. I combined them into one file as I had to re-organise the import order of the application.js file so that require_tree was after Ember.

scottfister avatar Apr 27 '14 18:04 scottfister

Instead of of creating application.js.coffee, could we make that be the only non-coffeescript file, and instead append that data to application.js?

stopachka avatar May 12 '14 06:05 stopachka

Bump? This is rather easily solved (renaming application.js.coffee -> application_ember.js.coffee), but getting an error from running a generator feels rather silly.

liclac avatar Oct 19 '14 02:10 liclac