Ruby on rails 在rails中调用ajax中的更新方法后,是否在索引视图中更新div?

Ruby on rails 在rails中调用ajax中的更新方法后,是否在索引视图中更新div?,ruby-on-rails,ajax,ruby-on-rails-4,Ruby On Rails,Ajax,Ruby On Rails 4,我有一个包含帖子列表的页面,我使用ajax进行分页,使用will_paginate,我在每篇帖子旁边有一个“Like”按钮。如果用户单击“喜欢”按钮,则我需要更新表中喜欢的计数,并将“喜欢”按钮更改为不喜欢“ 比如说,如果我在文章的第二页,单击“Like”按钮,我需要调用我的更新方法,如何返回到同一页并使用ajax更改按钮 如果我的更新逻辑在相同的索引方法中,我可能会这样做,但是如果我的逻辑在update方法中,我如何替换index.html.erb中的内容呢 请帮帮我。谢谢。你的问题是: 比如

我有一个包含帖子列表的页面,我使用
ajax
进行分页,使用
will_paginate
,我在每篇帖子旁边有一个
“Like”按钮。如果用户单击“喜欢”按钮,则我需要
更新表中喜欢的计数,并将“喜欢”按钮更改为
不喜欢“

比如说,如果我在文章的第二页,单击“Like”按钮,我需要调用我的更新方法,如何返回到同一页并使用ajax更改按钮

如果我的更新逻辑在相同的索引方法中,我可能会这样做,但是如果我的逻辑在
update
方法中,我如何替换
index.html.erb
中的内容呢

请帮帮我。谢谢。

你的问题是:

比如说,如果我在文章的第二页,点击“喜欢”按钮,我需要调用我的更新方法,如何使用ajax返回到同一页并更改按钮。

让我们逐一完成以下步骤:

a。为您的自定义方法创建一个路由,您将在其中更新它,它必须是一个
post
路由,因为我们希望发送要更新的post id

b。创建链接:

<%= link_to "Like", update_post_path(post.id),id: "post_#{post.id}",method: :post %>
def update_post
  @post = Post.find(params[:id])
  # update your post here
  respond_to do |format|
    format.js{} #this will allow you to have update_post.js.erb in your view
  end
end
d。更新Update.js.erb中的链接:

$("#post_<%= @post.id %>").text("Dislike");
$(“post”)文本(“厌恶”);

现在,由于我们正在用ajax更新您的链接和帖子,您将保持在同一页面上,您不必担心分页问题。有关更多信息,请参阅

如果您没有重定向它并通过ajax更新所有内容,那么您不会仍在同一页面上吗?对不起,我无法理解。如果我点击like按钮,它就会更新,更新方法的js将如何替换index.html.erboh的按钮。我以为你是用ajax更新的,顺便说一句,我认为你应该用ajax请求更新它,因为这应该是正确的流程,否则你将不得不调用paginate,即使这样,它也会更新只显示正确的页面,而不是更新的问题。是的,我正在用Ajax更新,但我仍然无法理解如何更改按钮。对不起,我不清楚。你能帮我做一些代码示例吗?你能发布你在ajax中执行的代码吗?非常感谢。我想的是如何从update.js.erb更新索引视图。为什么要更新索引视图?这是一个ajax请求,所以用户将停留在当前页面上,从而停留在他/她的帖子上。好的,我理解。非常感谢。
$("#post_<%= @post.id %>").text("Dislike");