С моим rails.js не работает гем Paperclip - PullRequest
1 голос
/ 03 января 2012

Я использую рельсы 3, и я установил скрепку драгоценного камня.У меня есть форма для загрузки фотографии и просмотра изображений для отображения фотографии после сохранения.Проблема, с которой я столкнулся, была:

  1. Если я не включил rails.js в мой html-файл, он сохраняет файл и выдает ошибку Completed 406 Not Acceptable.

  2. Если я включаю rails.js в мой html, он выполняет format.js, но не сохраняет файл.

Мой код выглядит следующим образом:

в _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 Ответ

1 голос
/ 03 января 2012

Вы не можете загрузить файл с помощью запроса AJAX.См. этот вопрос , где это возникло.

В этом вопросе обсуждались некоторые варианты загрузки файлов через Upload: загрузка файла через ajax с php

Я бы посоветовал вам взглянуть на такие вещи, как Plupload

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...