Rails 2.0 and link_to_remote :with

I’m moving an old app to Rails 2.0 and other than fixing some routes Ajax calls with link_to_remote and the :with parameter was the only thing that gave me some trouble. In the old version I was grabbing the current value of a drop down list with Prototype and passing it along using :with like this

<%= link_to_remote image_tag('cms/add_16.gif', :id => "color_add"),
      :url => { :controller => "colors", :action => "new_ajax",
      :id => @product.id },
      :with => "{ color_id: $F('color_id') }"
%>

But in Rails 2.0 the parameter wouldn’t go along for the ride, it seemed that the new authenticity_token that gets sent with Ajax calls was messing things up. Here’s the fix

<%= link_to_remote image_tag('cms/add_16.gif', :id => "color_add"),
      :url => { :controller => "colors", :action => "new_ajax",
      :id => @product.id },
      :with => "'color_id='+$F('color_id')"
%>

I freely admit JavaScript/Ajax is my weakest language so if I was doing it wrong the entire time let me know :)

This entry was posted in Ajax, JavaScript, Ruby, Ruby on Rails. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. Posted May 9, 2008 at 2:19 pm | Permalink

    thanks! I am new to rails in general and had no clue how to attach a dom node value to my ajax requests. This is kind of a cornerstone of what I like to do.
    Now I know!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word