2010-05-02 35 views
5

Tôi hiện có một hình thức như thế này:form_for với lợi nhuận json

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

này kết quả đầu ra (chủ yếu):

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

Tuy nhiên tôi đang lập kế hoạch để sử dụng ajaxForm jQuery plugin ở đây và muốn các gốc mới sẽ được trả về ở định dạng JSON. Tôi biết nếu hành động của biểu mẫu là "/stems.json" điều này sẽ làm việc, nhưng có một tham số tôi có thể đưa vào lệnh gọi form_for để yêu cầu nó trả về JSON không?

tôi đã cố gắng làm

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

nhưng điều này đã không xuất hiện để làm việc.

Trả lời

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

giải quyết vấn đề

9

thậm chí sạch hơn:

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

Tôi upvoted câu trả lời của bạn đặc biệt bởi vì đối với một số lý do nào đó khi tôi còn cố gắng có kiểu dữ liệu là 'html' bằng cách sử dụng một form_tag, như: 'form_for (@example,: remote => true,: html => {: 'data-type' => 'html'})', d id không hoạt động, và logger của tôi đã báo cáo "** Processing by ExamplesController # index dưới dạng */***" khi tôi thực sự muốn "** Processing by ExamplesController # index dưới dạng HTML **." Giải pháp của bạn được đánh giá đúng: '<% = form_tag examples_path (: format => 'html'),: method =>: get,: remote => true%>' – mkralla11

12

Chỉ cần xác định dữ liệu kiểu:

= form_for(@stemp, :remote => true, :html => {:'data-type' => 'json', :multipart => true}) 
Các vấn đề liên quan