gpt4 book ai didi

javascript - 在我的 Rails 投票系统中包含 Ajax/JS

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:04 26 4
gpt4 key购买 nike

如何让它不刷新页面?相反,它只会更新计数?任何帮助将不胜感激!

故事 Controller :

def like
like = Like.create(like: params[:like], user: current_user, story: @story)
if like.valid?
flash[:success] = "Your selection was succesful"
redirect_to :back
else
flash[:danger] = "You can only like/dislike a story once"
redirect_to :back
end
end

index.html.erb:

<div class="pull-right">
<%= link_to like_story_path(story, like: true), :method => :put, :remote => true do %>
<i class="glyphicon glyphicon-thumbs-up"></i><%= story.thumbs_up_total %>
<% end %>

<%= link_to like_story_path(story, like: false), :method => :put, :remote => true do %>
<i class="glyphicon glyphicon-thumbs-down"></i><%= story.thumbs_down_total %>
<% end %>
</div>

Story.rb 模型:

def thumbs_up_total
self.likes.where(like: true).size
end

def thumbs_down_total
self.likes.where(like: false).size
end

最佳答案

Controller 应respond_to js“格式”,如Working with JavaScript in Rails 中所述。 .

代替 redirect_to :back,使用有意义的状态代码进行响应,例如 201 表示成功(创建新资源时)或 400 表示错误请求。

参见 RFC 2616, section 10 - Status Code Definitions .

然后,在您的 JS 中,处理 ajax:success 事件。 Working with JavaScript in Rails 中也对此进行了描述.

关于javascript - 在我的 Rails 投票系统中包含 Ajax/JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643320/

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