ReferenceError: Faye is not defined - ruby-on-rails-3

I am trying to do a chatbox with ruby on rails, using faye. It runs well with WEBrick server, my boss asks me to implement it with apache server, i tried it, but have some errors(showed by firebug):
TypeError: element.dispatchEvent is not a function
var client = new Faye.Client('http://192.168.2.1:9292/faye');
ReferenceError: Faye is not defined
var client = new Faye.Client('http://192.168.2.1:9292/faye');
gem 'faye' is included in the Gemfile, faye version is '0.8.8'; 'thin' is installed. thin version: '1.5.0'
Anyone can help to solve these problems? thx!

Include the following in the html file
<script src="http://localhost:9000/realtime_videos/client.js" type="text/javascript"></script>

Related

Error trying to connect to panda

I am following panda guide to integrate a rails app to panda for embedding a video in my app.
I have setup the panda.yml as follows:
development:
access_key: 805264cac2c2cbf61e69
secret_key: 133aa3bbf1d8cdf56f13
cloud_id: cloudbear
My panda.rb initializer file has the following (I do not want to host this app in heroku):
Panda.configure((ENV['PANDASTREAM_URL'] ||
YAML::load_file(File.join(File.dirname(__FILE__),"..",
"panda.yml"))[Rails.env]))
My gemfile:
gem 'panda', '~> 1.5.0'
When I try to fire up the rails console I get:
/home/vasu/.rvm/gems/ruby-1.8.7-p371/gems/panda-1.5.0/lib/panda/panda.rb:12:in
`configure': missing auth params or block (ArgumentError)
A look at the configure method inside the panda module shows that it expects either auth_params or block.
What do I seem to be missing in my configuration?
When i put in the cloud id (instead of its name as I had done above), I am able to fire up the rails console and connect to panda. cheers!

Rails with Jader gets 'failed to require "fs"' error

I am trying to use client side Jade templates that are precompiled by Ruby on Rails and available through JST.
I added the jader gem
gem "jader", "~> 0.0.8"
In configuration/initializers I created an initializer called jader.rb that contains:
Jader.configure do |config|
config.views_path = Rails.root.join('app','assets','javascripts','views')
config.mixins_path = Rails.root.join('app','assets','javascripts','mixins')
end
In app/assets/javascripts/views I added an index.js.jst.jade file
Hello World!
Lastly in my javascript file I have:
$('#app-content').append(JST["views/index"]());
When I run Rails and browse to the page triggering the code I am getting the following error:
failed to require "fs"
(in /my-project/app/assets/javascripts/views/index.js.jst.jade)
I understand that the problem is that jade is a node.js project and the require function is having a problem. How do I fix the require error?
If you are looking at using Jade templates only on the client side (with Rails asset pipeline), I recommend https://github.com/inossidabile/jade
It's likely there is an error in your index.jade template.
From the jade rails-fix pull request here, ExecJS used by rails does not support require("fs") and will throw 'failed to require "fs" even if it's a template error. Hopefully this should point you in the right direction.
To debug, you can replace the content of index.jade template with with a 1-liner jade placeholder to see if it renders well. Alternatively, try it out rendering the index.jade template with a nodejs server if possible to be sure the template renders without any whinning.

Rails App doesn't work on production enviroment

I have a rails app set up with Nginx + Passenger. When i have rails_env development; on my nginx.conf everything works fine, but when I remove it so the app get server on production env it just doesnt work, seems like its not loading gems or something. Feel free to take a look at the errors here www.luisurraca.co.cc
error message:
undefined method `has_attached_file' for #<Class:0x00000003b0be10>
Exception class:
NoMethodError
Right now its referring to the paperclip gem, but if i start removing gems from the gemfile it will display error from some other gem and so on.
Any ideas what the issue might be?
You probably defined paperclip/whatever in development group and it is not installed with bundle install --deployment. To see installed gems do bundle show not gem list.
did you specify ruby path for nginx? it should look like this:
http {
passenger_root /home/rlisowski/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.13;
passenger_ruby /home/rlisowski/.rvm/wrappers/ruby-1.9.3-p194/ruby;
# ....

Routing error while searching for javascript

My app worked a few days ago.
I have switched to 'thin' from webrick
now I get
2011-12-28T07:08:53+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/jquery.livequery-6725741b06c676d9173d5056b277caeb.js"):
I saw on other question that they were told to set this to true
config.serve_static_assets = false
but heroku recommends against that.
I have tried both using rake assets:precompile locally and then pushing and also without it and let heroku precompile.
Both give same error
How do I make sure the javascripts are served, compiled and available?
Why is the error occuring?
I'm using rails 3.1.3 on cedar, Latest Thin.
I was able to solve this using the question Rails 3.1 asset precompilation - include all javascript files
so.. problem solved

RJS Handler missing

I got a missing template error when I tried to achieve a task using RJS.
All I want is to execute an RJS file on ajax call. But I am getting the
following error.
ActionView::MissingTemplate (Missing template line_items/create,
application/create with {:handlers=>[:erb, :builder, :coffee],
:formats=>[:js, :html], :locale=>[:en, :en]}. Searched in:
* "<MY APP PATH>/app/views"
):
app/controllers/line_items_controller.rb:46:in `create'
But the create.js.rjs is present in the folder /views/line_items. You
can see the handlers miss .rjs extension. I think thats causing the
error.
If I change .rjs to .erb, it works and the content is executed as
javascript and thus I need to modify the RJS functions to Javascript to
return the contents of AJAX call.
Could you please explain how I can attain this using RJS? Please help.
Following is the versions of tools I use.
Ruby version 1.9.2 (i686-linux)
RubyGems version 1.8.10
Rack version 1.3
Rails version 3.1.0
JavaScript Runtime Node.js (V8)
Active Record version 3.1.0
Action Pack version 3.1.0
Active Resource version 3.1.0
Action Mailer version 3.1.0
Active Support version 3.1.0
Thanks in advance.
in order to use RJS with Rails 3.1 you have to use the prototype-rails gem
Make sure prototype-rails gem is in bundler's production group. If you put it in the assets group it will not register the RJS template handler.