我正在尝试将 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 的情况下上传的图像可以正常上传并显示
我的代码如下:
项目图像 Controller :
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>
感谢您提前提供的帮助。
最佳答案
dropzone 以 JSON 格式发送请求,但您尝试呈现 HTML,因此您必须更改 Controller :
来自
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 格式的内容
希望我能帮助别人......
关于javascript - Dropzone.js 与 Rails 4 : "Template is missing" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26997664/