js将数据发布到rails&令人耳目一新

时间:2016-06-13 12:38:23

标签: javascript ruby-on-rails post reload

我有问题(哦不)。 使用rails我正在显示可排序的表,我移动该行,ajax将数据(哪行到哪里)发布到rails控制器,这将数据保存到DB(render:nothing => true)。

现在我希望重新加载页面,因为应该进行新的计算。 如果我在js中使用reload(success:window.location.reload();)页面重新加载但是使用旧数据。我也使用了延迟(setTimeout(,..,1000))但没有成功。

似乎数据还没有在DB中。

如何在数据为POST的rails控制器中重新加载。 或者也许是其他解决方案。

LP dejan

2 个答案:

答案 0 :(得分:1)

我在你的帮助下做到了。 THX。

所以在JS代码中POST我必须将dataType更改为'script'

  $.ajax(
      type: 'POST'
      url: '/x/update_row_order'
      dataType: 'script'
      data: ndata

  )

然后按行动建议

def update_row_order
  # ndata saved in model
  render js inline: "location.reload();"
end

as window.location.reload();没用 就是这样。再次THX。

答案 1 :(得分:0)

如果要重新加载页面,请在视图中创建一个javascript文件,并在视图文件中编写重新加载代码。

在您的controller_name#action_name

def action_name 
 format.js 
end

在您的视图(action_name.js)文件中,只需写:

  

window.location.reload();

有效。