使用我的rails.js,Paperclip gem无法正常工作

时间:2012-01-03 11:07:07

标签: ruby-on-rails

我正在使用rails 3,我已经安装了paperclip gem。我有一个表单上传照片和图片视图,以便在保存后显示照片。  我遇到的问题是,

  1. 如果我在我的html文件中没有包含rails.js,它会保存文件并且它会给出已完成406不可接受的错误。

  2. 如果我在html中包含rails.js,它会执行format.js但不保存文件。

  3. 我的代码如下所示:

    _form.html.erb中的

    <%= form_for @image, :url => {:controller => "settings", :action =>         "create"}, :html => {:multipart => true, :remote => true, :method => "post"} do |f| %>
     <% if @image.errors.any? %>
      <div id="error_explanation">
       <h2><%= pluralize(@image.errors.count, "error") %> prohibited this image from being saved:</h2>
      <ul>
       <% @image.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
    </div>
    <% end %>
    <%= f.hidden_field :user_id, :value => current_user.id.to_s %>
    <p>
    <b> Picture </b><br/>
    <%= f.file_field :pic %>
    </p>
    <div class="actions">
    <%= f.submit "Upload Image" %>
    </div>
    <% end %>
    

    以上表格中的@image = Image.new。

    在我的控制器中:

      def create
       @image = Image.new(params[:image])
       if @image.save
        @user_image = Image.first(:order => "created_at DESC", :conditions =>        ["user_id=?", current_user.id])
       end
       respond_to do |format|
        format.js do
         render(:create) { |page| page.reload }
        end
       end
      end
    

1 个答案:

答案 0 :(得分:1)

您无法通过AJAX请求上传文件。见this question出现的位置。

在此问题中,我们讨论了通过上传上传文件的一些选项:uploading a file via ajax with php

我建议您查看Plupload

等内容