web-workers in Rails projects

ruby-on-rails, web-worker

Solution

- Put my_task.js in `/public/javascripts`

- In your javascript code where the worker is created, use the following ERB: `var worker = new Worker("<%= javascript_path "my_task.js" %>");`

- Add `.erb` to the extension of whatever file the above javascript code is found in. So if it's `mypage.js`, it becomes `mypage.js.erb`.

The above works for me on Rails 4.2.0, ruby 2.0.0p598

Problem

I try to use web workers to be able to run several javascript codes at the same time. To start the worker I put the following into my javascript code section: ``` var worker = new Worker("my_task.js"); worker.onmessage = function(e) { console.log('Worker said: ', e.data); }; worker.postMessage("test"); ``` my_task.js is the same folder as the file that holds the code above. This is how my_task.js looks like: ``` self.addEventListener('message', function(e) { self.postMessage(e.data); }, false); ``` But there seems to be a problem with Ruby on Rails (version 3.2.1): ``` Started GET "/users/my_task.js" for 127.0.0.1 at ... ... ... ActiveRecord::RecordNotFound (Couldn't find User with id=my_task) ``` As you can see Rails tries to send an http get request when the script is started. How can I solve this problem? Is there a better way to use web workers in Rails projects? Thanks

Original source