Dropzone Rails 505错误

时间:2014-04-24 22:50:39

标签: javascript ruby-on-rails dropzone.js

我正在使用dropzone-railsdropzone添加到我的Rails应用中。我正在使用CarrierWave进行图像上传,没有Dropzone就可以正常工作。

当我将图像放到我的dropzone表单上时出现错误。表单位于我的“Canvas”模型的编辑页面上。

表单html

<%= form_for(@canvas, :html => { :class => 'dropzone', :id => 'awesomeDropzone' }) do |f| %>
  <%= f.file_field :image %>
  <%= f.submit %>
<% end %>

Dropzone JS调用

Dropzone.options.awesomeDropzone = {
  paramName: "canvas[image]", // The name that will be used to transfer the file
  clickable: false
};

控制台错误:

GET http://localhost:3000/canvases/21/edit 500 (Internal Server Error)

canvases_controller.rb

def edit
    @canvas = Canvas.find(params[:id])
end

def update
  @canvas = Canvas.find(params[:id])

  if @canvas.update_attributes(update_params)
    redirect_to edit_canvas_path(@canvas)
  else
    render :edit
  end
end

canvas.rb

mount_uploader :image, ImageUploader

Full log data

2 个答案:

答案 0 :(得分:2)

根据错误,

ActionView::MissingTemplate (Missing template canvases/edit, application/edit with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in:
  * "/Users/colmtuite/dev/design_tool/app/views"
):

edit没有canvases视图。确保edit.html.erb文件夹中有app/views/canvases个文件。

<强>更新

另外,我注意到请求是针对Processing by CanvasesController#edit as JSON的, 请注意,格式为JSON而非HTML。如果您有edit.html.erb个文件,并且想要渲染该特定视图,请确保不要将格式指定为&#39; JSON&#39;在调用edit操作时,默认格式将被视为HTML

更改update操作,如下所示:

def update
  @canvas = Canvas.find(params[:id])

  if @canvas.update_attributes(update_params)
    redirect_to edit_canvas_path(@canvas, format: :html) ## Specify format as html
  else
    render :edit
  end
end

答案 1 :(得分:0)

dropzone 使用 JSON 格式,而不是 HTML ,所以 您可以将控制器更改为:

render nothing: true

render nothing: true, status: 200

问候!