2010-05-02 10 views
5

que actualmente tienen una forma como esta:form_for con el regreso JSON

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

Este salidas (esencialmente):

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

Sin embargo tengo la intención de usar plug-in ajaxForm de jQuery aquí y me gustaría la nuevo tallo para ser devuelto en formato JSON. Sé que si la acción del formulario fuera "/stems.json", esto funcionaría, pero ¿hay algún parámetro que pueda poner en la llamada form_for para pedirle que devuelva JSON?

He intentado hacer

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

pero esto no parece funcionar.

Respuesta

2
<% form_for @stem, :html => {:multipart => true}, :url => "/stems.json" do |f| %> 
blublublub 
<% end %> 

resuelve el problema

9

aún más limpio:

<% form_for @stem, :html => {:multipart => true}, :url => stems_path(:format => "json") do |f| %> 
    blublublub 
<% end %> 
+0

I upvoted su respuesta específicamente porque por alguna razón desconocida cuando estaba intentando tener un tipo de datos como 'html' usando form_tag, como: 'form_for (@example,: remote => true,: html => {: 'data-type' => 'html'})', re id no funciona, y mi registrador informó "** Procesando por ExamplesController # index as */***" cuando realmente quería "** Procesando por ExamplesController # index como HTML **." Su solución se evaluó correctamente: '<% = form_tag ruta_de_ejemplos (: format => 'html'),: method =>: get,: remote => true%>' – mkralla11

12

basta con especificar el tipo de datos:

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