gpt4 book ai didi

ruby-on-rails - 如何将行为设置为不需要用户登录的投票?

转载 作者:行者123 更新时间:2023-12-03 21:39:54 25 4
gpt4 key购买 nike

我试图让用户无需登录/注册即可对线程进行投票,以提高用户参与度。我该怎么做呢?目前,我目前的流程是将投票与访问者的 IP 地址联系起来,以防止多次投票,但另一个问题是 request.remote_ip 没有为我提供正确的 IP(我在学校网络上)。有什么建议么?非常感谢!

线程 Controller 中的投票操作

def upvote
@thread = Thread.find(params[:id])
current_user.up_vote(@thread)
flash[:message] = 'Thanks for voting!'
respond_to do |format|
format.html { redirect_to :back }
format.js
end

投票路线
resources :threads do
member do
post :upvote
post :unvote
end

最佳答案

我写的行为是可投票的。

这个 gem 背后的整个想法是允许任何东西对任何东西进行投票(因此不会像您所描述的情况那样对用户有硬性依赖)。

如果您不想使用 IP 地址来存储选票,那么也许您可以使用与每个 session 相关联的唯一 ID。这对投票欺诈是开放的,但它允许任何人在没有账户的情况下投票。

你可以做类似的事情

session[:voting_id] ||= create_unique_voting_id
voter = VotingSession.find_or_create_by_unique_voting_id(session[:voting_id])
voter.likes @thread

您需要设置一个 VotingSession 模型来充当 act_as_voter 并维护一个唯一的投票 id,但这应该很容易使用 rails。

希望这可以帮助

关于ruby-on-rails - 如何将行为设置为不需要用户登录的投票?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987378/

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