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

Dropzone.js with Rails 4: "Template is missing" error

本文关键字:模板缺失 错误 js Rails Dropzone      更新时间:2023-09-26

我正在尝试将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 上传的图像上传和显示正常

我的代码如下:

项目图像控制器:

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

项目/节目.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>

提前感谢您的帮助。

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 格式的内容

希望我能帮助别人...