重定向同一页面而不在rails中重新加载

时间:2016-08-01 06:27:39

标签: javascript jquery ruby-on-rails

重定向同一页面而不重新加载整个页面。我可以使用下面的这个javascript

javascript.rb

$("#myLink").click(function() {
    window.location.reload();
});

html.erb

<%= fields_for 'images[]', img do |p| %>
    <%= link_to img[:image_path],users_categorize_path(img),:html=>{:id=>"myLink"}%>
<% end %>

我的问题是一切正常,但脚本无法正常工作。

如何在rails link标签中包含脚本ID?要么 还有其他任何脚本吗?

 <%= link_to img[:image_path],users_categorize_path(img), remote: true,:html=>{:id=>"myLink"}%>          

在运行时链接将传递控制器和视图页面中的参数,但是图像无法显示。然后我将删除遥控器:在视图页面中它将正常工作。我能做什么?

3 个答案:

答案 0 :(得分:0)

试试这个:

<%= link_to img[:image_path],users_categorize_path(img), remote: true,:html=>{:id=>"myLink"}%>

在此之后,在js文件中对controlle的方法进行ajax调用。然后在尊重方法的js.erb刷新或重新加载你在javascript文件中编写的代码。

答案 1 :(得分:0)

你可以试试这个

<%= link_to img[:image_path],users_categorize_path(img), remote: true, id: "myLink" %>

之后在浏览器中检查此元素以检查id是否应用于此元素。

以下链接将介绍如何将id应用于link_to元素。

Rails link_to assigning class and id

如果id正确应用于链接,那么你需要像这样绑定事件。

$("#myLink").on("ajax:beforeSend", function(){
   window.location.reload();
}).on("ajax:complete", function(){
  //preloader hide
});

希望这有帮助!

答案 2 :(得分:0)

$("#myLink").click(function(e) {
    e.preventDefault();

    window.location.reload();
});