rails3 render partial with unobtrusive js

Some things seem like they will never be clear with Rails. It took me half a day to figure out how to render a partial using unobtrusive js, but it is not clear why it works and why it went through all the singular plural stuff.

In the show view of a model, I wanted to display two related lists/ indexes (with a :remote => true link to load them). One of the items has a controller, but I normally just create a partial to display the list because all the features in the index view may not apply. The other item does not have a controller and lives within its parent model.

the routes:   resources :stages do     resources :assessors, :only => [:index, :new, :create]     member do       get "import"       get "applicants"     end   end

Applicants live only with stages and are dynamically created/updated.

Following the Railscast on unobtrusive JS and trying to turn it into something that would load a partial, nothing seemed to work. I could not access my _applicants.html.erb with js, it wanted it in the assessors view. I finally got an error on the log that said, not only does it want it in the assessors view directory, it wants it named _assessor - even thought it is a list.

Same thing with the applicants. It would take the applicants.js.erb file in the stages directory, but wanted a singular partial in the applicants view - which I did not have.

The JS line is:

$("related").update("<%= escape_javascript(render(@applicants))%>");

The render call won't accept partial, file name or about anything else I tried.

I know there is not a lot out there yet on rails3 and unobtrusive JS, but if someone could enlighten me, I'd appreciate it.

Steve

Well, it even got worse, but I figured it out.

forgot about Layouts and Rendering in Rails — Ruby on Rails Guides

If there were 5 items in the list, the template would be rendered 5 time!

I am not sure why I could not get render(:partial => "stages/ applicants") to work yesterday, must have been typo's or something, but I got it to work today. I did have to use the view folder before the partial name.

Steve