作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,我正在关注 Jquery 文件上传的视频教程 http://railscasts.com/episodes/381-jquery-file-upload我被困住了。上传图像后,我的渲染部分不会刷新,它会在已附加的图像下添加新图像和所有其他图像。因此,如果我将两个图像添加到新项目中,它会显示第一个图像,然后使用第一个图像和第一个图像下的第二个图像再次渲染部分图像,因此总共有 3 张照片。
这是我的 create.js.erb
<% if @photo.new_record? %>
alert("Failed to upload photo: <%= j @photo.errors.full_messages.join(', ').html_safe %>");
<% else %>
$("#photos").append("<%=j render @photo %>");
<% end %>
这是我的展示页面的渲染。
<div id="photos">
<%= render 'photos/photo' %>
</div>
这是我的/photos/_photos.html.erb 部分
<h2>Images</h2>
<div class="photo">
<% @rental.photos.each do |photo| %>
<p>
<strong>Photo:</strong>
<%= image_tag photo.image_url.to_s %>
</script>
</p>
<% end %>
</div>
这是我创建的照片 Controller
def create
@rental = Rental.find(params[:rental_id])
@photo = @rental.photos.create(params[:photo].permit(:image))
respond_to do |format|
format.js
end
end
这是我的 photos.js.jcoffee
jQuery ->
$('#new_photo').fileupload(replaceFileInput: false,
paramName: 'photo[image]')
dataType: "script"
add: (e, data) ->
types = /(\.|\/)(gif|jpe?g|png)$/i
file = data.files[0]
if types.test(file.type) || types.test(file.name)
data.context = $(tmpl("template-upload", file))
$('#new_photo').append(data.context)
data.submit()
else
alert("#{file.name} is not a gif, jpeg, or png image file")
progress: (e, data) ->
if data.context
progress = parseInt(data.loaded / data.total * 100, 10)
data.context.find('.bar').css('width', progress + '%')
任何帮助都会很棒,我被困住了。谢谢!
<小时/>非常感谢 Rich Peck,他的回答完全解决了我的问题。我必须改变
<% if @photo.new_record? %>
alert("Failed to upload photo: <%= j @photo.errors.full_messages.join(', ').html_safe %>");
<% else %>
$("#photos").append("<%=j render @photo %>");
<% end %>
至
<% if @photo.new_record? %>
alert("Failed to upload photo: <%= j @photo.errors.full_messages.join(', ').html_safe %>");
<% else %>
$("#photos").html("<%=j render @photo %>");
<% end %>
最佳答案
def create
@rental = Rental.find(params[:rental_id])
@photo = @rental.photos.create(params[:photo].permit(:image))
respond_to do |format|
format.js
end
end
这是我第一次看到它
<小时/>修复实际上是使用 $('#photos').html()
替换容器。 OP 最初使用 .append
来将内容附加到容器中,但效果不佳
关于Rails 4 中的 Jquery 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19441535/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!