gpt4 book ai didi

javascript - 使用 Thumbs_up gem 在 Rails 4 中进行 AJAX 化投票

转载 作者:行者123 更新时间:2023-11-29 21:56:59 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 调用做一个非常简单的投票模块。不幸的是,我已经坚持了大约 4 天了。我对 Rails 还是很陌生,我很想弄清楚我在这里做错了什么!

该网站的概念非常简单。有一个用户可以投票的帖子列表(称为主题)。我将 Devise 用于用户模型,将 Thumbs_up 用于投票。

这是 View 片段:index.html.erb

<td id='topic_<%=topic.id%>_votes'> <%= pluralize(topic.votes.count, "vote") %> </td>
<td><%= link_to('Vote for this post!', vote_up_topic_path(topic), :method => :post, :remote => true) %></td>

这是 Controller :topics_controller.rb

def vote_up
current_user.vote_exclusively_for(@topic = Topic.find(params[:id]))
respond_to do |format|
format.js
end
end

这是 JavaScript:views/topics 中的 vote_up.js.erb

<% if current_user.voted_on?(@topic = Topic.find(params[:id])) %>
$('topic_<%=@topic.id%>_votes').html('<%= pluralize(@topic.votes.count, "vote") %>');
<% else %>
alert("You can only vote on <%= @topic.title %> once!")
<% end %>

当我启动 Rails 服务器并单击投票链接时,我可以看到(在终端中)它确实处理了 vote_up.js.erb 文件,但浏览器中没有任何变化。只有当我刷新它时,它才会显示增加的票数。投票记录在数据库中,但浏览器中没有确认。

我在这里做错了什么?

最佳答案

由于您正在为该 Div 使用 ID,因此请在 vote_up.js.erb 代码中的 topic_<%=@topic.id%>_votes 之前添加一个“#”。

它应该是这样的:

$('#topic_<%=@topic.id%>_votes').html('<%= pluralize(@topic.votes.count, "vote") %>');

关于javascript - 使用 Thumbs_up gem 在 Rails 4 中进行 AJAX 化投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26034455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com