问题:Ajax的行为不应该如此。
PostIndex:
<tr>
<td><%= post.name %></td>
<td><%= post.created_at.strftime("%Y/%m/%d, %I:%M%p") %></td>
<td><%= post.view %></td>
<td id="post_like_<%= post.id %>"><%= post.like %></td>
<td><%= link_to 'like', like_post_path(post), :remote => true %></td>
</tr>
like.js.erb:
$("#post_like_<%= post.id %>").html("<%= @post.like %>");
我只有在刷新页面后才能看到更改。 Ajax无法正常工作,但我无法找到上述代码中的问题所在。
答案 0 :(得分:1)
您忘记了视图中的@
。我看到$post
在实例变量中,因为我看到$post.like
。因此,在like.js.erb
中,将post.id
替换为@post.id
。像:
$("#post_like_<%= @post.id %>").html("<%= @post.like %>");