6

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();

2 Answers 2

11

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();
Sign up to request clarification or add additional context in comments.

3 Comments

please see edit. declaring @user.id within the js.erb as such isn't being recognized.
awesome. works with a minor edit to declare the css id using the "#" prefix. (please make the edit in your answer, it won't let me do it). thanks!
I got nil on @user or @whatever.
6

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

1 Comment

Perfect!! Exactly what I was looking for!!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.