Я использую рельсы 3, и я установил скрепку драгоценного камня.У меня есть форма для загрузки фотографии и просмотра изображений для отображения фотографии после сохранения.Проблема, с которой я столкнулся, была:
Если я не включил rails.js в мой html-файл, он сохраняет файл и выдает ошибку Completed 406 Not Acceptable.
Если я включаю 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