Using Rails Objects in js file

Hey guys,

This seems pretty simple, but I cannot seem to find an answer online.
I have a user model and would like to use a user object in the js
file. Any ideas as to how I can do this?

Thanks and Regards.

Hi,
Rails does not process js files directly.
I would do one of 2 things :-

  1. Output any data that you require from the user object into a script
    tag within the page that uses the javascript and pass that data
    through to your javascript code.

  2. Use rails RJS feature (see
    Layouts and Rendering in Rails — Ruby on Rails Guides
    and search for RJS)

Cheers

Gary

Bertly,

Are you looking to manipulate your Rails models on the client side
without having the user reload the page? If so you need to find or
create a Javascript REST client, which isn’t all that hard. You can
use Prototype or jQuery’s Ajax helpers directly, or you could use a
javascript library. The best ones I’ve found are Backbone.JS and it’s
Model and Sync layer, or the no longer maintained Jester.JS from
thoughtbot inc. After figuring out how you are going to access your
models on the client side, you need to ensure your controllers are
RESTful and adhere to the standard rails routing principles. If you
don’t know what those are look at the “Rails Routing from the Outside
In” guide on the guides.rubyonrails.org site. After doing this, make
sure your controllers can respond to requests in :json or :xml formats
so your javascript can interpret the data.

I would caution against using RJS because it is often murky generated
code, hard to maintain big amounts of, and ties you down to one
Javascript library (Prototype). My preferred way of interacting with
Javascript from the Rails side is by using one of the UJS drivers in
Rails 3 (I prefer jQuery). This way, you just add specific attributes
to your HTML, and the jquery-rails plugin handles the rest.

Let me know if any of this is unclear!