gpt4 book ai didi

ruby-on-rails - PATCH 使用了错误的型号 ID

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

我遇到了以下问题

screenshot

我的编辑功能将id为33的模型对象保存为id 32,我不知道为什么。这是我的 Controller 功能:

def update
@user = User.find_by_id(session[:user_id])
@user.ranks[0].update(user_params)
redirect_to dashboard_ranks_path
end

private
def user_params
params.require(:rank).permit(:points, :rank_name, :id)
end

同样的方法适用于另一个 Controller ,但在这个 Controller 上由于某种原因突然不起作用。例如我有 3 个帖子,我编辑了第一个,它不会更改 id,它会成功编辑自己。但是,如果我选择第二个,它会选择第三个的 ID,如果我编辑第三个,它会以某种方式修补第一个。以前有人遇到过这样的错误吗?

最佳答案

您是否有多个服务器运行您的应用程序?您使用的是数据库/redis 支持的 session 存储吗?特别是,通过用户关联获得排名的方式似乎是个问题。理想情况下,你会做类似的事情

rank = @user.ranks.find_by_id params[:rank][:id]
rank.update(user_params) if rank

与问题无关,但我建议将 user_params 的名称更改为 rank_update_params 或确实代表其用途的名称。

编辑

前两个问题与了解拥有您正在编辑的排名的用户是否与您从 session 中访问的用户相同。

关于ruby-on-rails - PATCH 使用了错误的型号 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33193632/

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