我正在尝试将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>
提前感谢您的帮助。
答案 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格式的其他内容
希望我能帮助别人......