Rails刷新时出现部分错误,而不是更新ID

时间:2016-01-30 21:29:35

标签: javascript jquery ruby-on-rails

我正在创建一个汽车网站作为一个项目,并有一个奇怪的问题。 如果我正在创建一辆汽车并添加物品(通过放置区域)并使用图像刷新部分​​,一切都很有效。然后我去另一辆车并且图像加载了该车的正确图像,但是当我向该车添加另一个图像时,部分刷新与之前的车辆图片而不是当前的车辆。

这是显示页面中的代码,引用了部分:

<div id="links">
  <%= render partial: 'show', :object => @car %>
</div>

Dropzone正在使用的脚本:

$(document).ready(function(){  
// disable auto discover
 Dropzone.autoDiscover = true;

var dropzone = new Dropzone (".dropzone", { 
maxFilesize: 400, // set the maximum file size to 256 MB
paramName: "image[extrapic]", // Rails expects the file upload to be something like model[field_name]
addRemoveLinks: true // don't show remove links on dropzone itself.
});

dropzone.on("success", function(file) {
this.removeFile(file);
$.getScript();
})
});

刷新部分代码:

$("#links").html("<%= escape_javascript(render('show')).html_safe %>");

部分本身:

<% @images.each do |image| %>
<% if image.car_id != nil && image.car_id == @car.id %>
    <div class="img-thumbnail">
        <%= link_to image_tag(image.extrapic.url(:thumb)), (image.extrapic.url(:large)) %>
        <% if can? :destroy, @car %>
            <br /><%= link_to 'Destroy', image,  method: :delete, data: { confirm: 'Are you sure you want to delete this picture?' }, class: "btn btn-link" %>
        <% end %>
    </div>
<% end %>

我非常感谢任何想法或想法,我已经尝试了很多方法,不太确定它未能更新@ car.id的地方,我认为它会在汽车页面加载时更新,并且直到我添加另一个图像。

1 个答案:

答案 0 :(得分:0)

好吧我终于解决了,之前我曾尝试使用Gon宝石而且它不起作用所以我将其删除了,但我刚刚将它添加回来并且它很好。

如果你将它放在application.html.erb文件的头部,显然gon.watch不能正常工作,但是如果你把它移到字母的正文中它会更新。所以我这样做了,并将gon.watch.car_id = @ car.id添加到汽车控制器然后在javascript中我在脚本引用中调用car.id更新部分,现在它全部正常工作!

希望这对其他人也有帮助!

d