Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

form_for with json return

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.

like image 896
Lowgain Avatar asked May 02 '10 23:05

Lowgain


2 Answers

Just specify the data-type:

= form_for(@stemp, :remote => true, :html => {:'data-type' => 'json', :multipart => true})
like image 144
lambinator Avatar answered Oct 16 '22 23:10

lambinator


even cleaner:

<% form_for @stem, :html => {:multipart => true}, :url => stems_path(:format => "json") do |f| %>
  blublublub
<% end %>
like image 29
alup Avatar answered Oct 17 '22 00:10

alup