Ruby ajax调用启动不需要的弹出框

时间:2014-07-02 16:51:33

标签: javascript jquery ruby-on-rails ruby ajax

我对AJAX项目中的某条路线进行了Ruby on Rails调用。它调用Ruby Controller中的方法来更新我的几个对象上的标志,然后我需要重新加载页面以反映这些更改。这是我的解决方案,在Ruby方法结束时:

respond_to do |format|
  format.js {render js: "window.location = '#{processed_items_path(params)}'" }
end

这正是我需要它做的事情,它刷新页面并将用户拉回到顶部以查看闪光通知。但是,在这样做之前,它会弹出一个窗口,上面写着:

The page at localhost says:
  "window.location = '#{processed_items_path(params)}'"

并且需要您点击"OK"才能继续。有没有办法摆脱那个盒子?

1 个答案:

答案 0 :(得分:0)

根据上面的评论,代替重定向,只需呈现包含表格的部分内容

我假设您的ajax通话正在运行(因为它将您带到您的方法)。为了渲染你的部分,你可以这样做:

def your_method
  #your logic of updating attributes
  respond_to do |format|
    format.js {} # this will let rails look for a file named your_method.js.erb in your view
  end
end 

现在您只需要在 your_method.js.erb

中渲染您的部分内容
$("#some_id_of_parent_element").html("<%=j render partial: "partial_containing_table", locals: { :your_local => partial_local} %>");

有关详细信息,请参阅Working with javascript in rails