Dropzone.js与Rails 4:“模板丢失”错误

时间:2014-11-18 15:16:09

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

我正在尝试将Dropzone.js与Rails 4一起使用,虽然我可以显示实际的Dropzone“区域”,但当我尝试上传图片时,以下

Template is missing Missing template projects/show, application/show with {:locale=>[:en],           :formats=>[:json], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}

但是,我很确定我有模板,因为没有Dropzone上传的图片正在上传并显示正常

我的代码如下:

ProjectImagesController:

class ProjectImagesController < ApplicationController

    def create 
        @project = Project.find(params[:project_id])
        @project_image = @project.project_images.create(project_image_params)
        redirect_to project_path(@project)
    end

    private

    def project_image_params
        params.require(:project_image).permit(:caption, :image)
    end
end

项目/ show.html.erb

<% if @project.project_images.any? %>
<% @project.project_images.each do |project_image|%>
<ul>
    <li><%= image_tag project_image.image.url(:thumb) %></li>
    <li><%= project_image.caption %></li>
</ul>
<% end %>
<% end %>

<%= simple_form_for [@project, @project_image], :html => {:multipart => true, class: :dropzone} do |f| %>
<div>
<%= f.input :caption, label: 'Enter your project image caption' %>
<%= f.file_field :image %>
<%= f.submit 'Create project image'%>
</div>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

dropzone以 JSON格式发送请求,但您尝试呈现 HTML ,因此您必须更改控制器:

def create 
  @project = Project.find(params[:project_id])
  @project_image = @project.project_images.create(project_image_params)
  redirect_to project_path(@project)
end

def create 
  @project = Project.find(params[:project_id])
  @project_image = @project.project_images.create(project_image_params)

  render nothing: true
end

或JSON格式的其他内容

希望我能帮助别人......