form_for with json return

Lowgain picture Lowgain · May 3, 2010 · Viewed 13.7k times · Source

I currently have a form like this:

<% form_for @stem, :html => {:multipart => true} do |f| %>
<%= f.file_field :sound %>
<% end %>

This outputs (essentially):

<form method="post" id="new_stem" class="new_stem" action="/stems">
<input type="file" size="30" name="stem[sound]" id="stem_sound">
</form>

However I'm planning to use jQuery's ajaxForm plugin here and would like the new stem to be returned in JSON format. I know if the form's action was "/stems.json" this would work, but is there a parameter I can put into the form_for call to ask it to return JSON?

I tried doing

<% form_for @stem, :html => {:multipart => true, :action => '/stems.json'} do |f| %>

but this didn't appear to work.

Answer

lambinator picture lambinator · May 4, 2012

Just specify the data-type:

= form_for(@stemp, :remote => true, :html => {:'data-type' => 'json', :multipart => true})