我对 ajax 请求有疑问:
在我的应用程序中,我试图配置一个简单的排名系统,并进行了设置,但是当我点击排名按钮时 - 我重新加载页面并刷新排名。
帮助我在 ajax 中意识到这一点:
我这样做了:
在posts/show.html.erb
我有那个:
<div id='vote_update'>
<%= render 'vote/update' %>
</div>
在vote/_update.html.erb
我有:
<% if can? :update, Vote %>
<%= form_for([@post, @post.vote], remote: true) do |f| %>
...
<%= f.submit "vote" %>
在vote/update.js.erb
我有:
$('#vote_update').html("<%= j render('vote/update') %>");
在 vote_controller.rb 我有:
def update
post = Post.find(params[:post_id])
vote = post.vote
...
respond_to do |format|
if vote.save
format.html {
redirect_to post_path(post),
:notice => "You vote counted!"
}
format.js
end
end
end
如果我删除 romete: true - 一切正常(页面重新加载,我看到 (:notice) “你的投票已计入!”并且评分已更新,但如果我将 remote: true 放回去,我什么也看不到(firebug 控制台中的一些错误) - 但是当我重新加载页面时 - 更新了更新,我看到了 norml 结果 - 我认为我在重定向时犯了一些错误或者我不知道
请帮忙