Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing instance variable to js.erb file (Rails 3 / jQuery)

I have an "index.html.erb" file with the following:

<%= render @users %>

This renders "_user.html.erb" and outputs a button for performing a certain action on each user:

<%= link_to "action", action_path(user), :id => "#{user.id}_action", :remote => true) %>

I've set up my User controller to respond to the AJAX request by looking at "action.js.erb".

In order to perform javascript methods on particular users within the partial, and I'd like to know how instance variables from my partial (such as user.id) can be passed into or accessed within the js.erb file, for instance:

$("#{@user.id}_action").toggle();
like image 226
neon Avatar asked May 14 '11 17:05

neon


2 Answers

You access the information in your *.js.erb-files just like in your *.html.erb-files, using @users or other instance variables declared in the controller:

$("#<%= @user.id %>_action").toggle();
like image 158
Magnar Avatar answered Nov 09 '22 23:11

Magnar


there's an excellent gem called gon that might simplify and organize things quite a bit: https://github.com/gazay/gon/blob/master/README.md

like image 42
Nuriel Avatar answered Nov 09 '22 23:11

Nuriel