1

我有一个 Rails 应用程序并试图制作一个远程表单,到目前为止它并没有真正奏效..有人可以指出我在这里做错了什么:

所以模型:

class Media < ActiveRecord::Base
  attr_accessible :galaxy, :title, :rss_url, :avatar
  has_many :stories
  has_many :plots, :through => :stories




class Story < ActiveRecord::Base
  attr_accessible :content, :galaxy, :title
  validates_uniqueness_of :content
  belongs_to :media
  has_many :plots




class Plot < ActiveRecord::Base
  belongs_to :plotable, :polymorphic => true
  has_many :plots, :as => :plotable
  has_many :soundtracks, :as => :soundtrackable, :dependent => :destroy
  accepts_nested_attributes_for :soundtracks, :allow_destroy => true

所以在 app/views/medias/show.html.erb:: 中查看

  <% @media.stories.each do |s| %>
   <%= form_for :plot, :remote => true, :html => { :id => 'pl_form' } do |f| %>
    <%= f.fields_for :soundtracks do |soundtrack_fields| %> 
       <%= soundtrack_fields.file_field :soundtrack %>
     <% end %>
    <%= text_field_tag :name, s.content, :style =>"display:none" %>
    <%= f.submit %>
   <% end %> 

app/views/plots/create.js.erb

var el = $('#new_pl');
  // We could also render a partial to display the plot here
  $('#plots').append("<%= escape_javascript( 
      simple_format( @plot.body ) 
    ) %>");
  el.find('input:text,textarea').val('');
  el.find('.errors').empty();
<% end %>

控制器是标准的..

4

1 回答 1

0

将 multipart true 添加到您的表单

 <%= form_for :plot, :remote => true, :html => { :id => 'pl_form', :multipart => true } do |f| %>

来自 W3C 的多部分

内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单

于 2012-06-23T12:04:32.437 回答