gpt4 book ai didi

mysql - Rails - Controller 中连接表的语句 IF

转载 作者:行者123 更新时间:2023-11-29 20:30:06 26 4
gpt4 key购买 nike


我想了解有关允许用户收藏游戏的“收藏夹”操作的“IF”语句的建议。一场比赛需要一个协会。一个用户 ID/一个游戏 ID(在连接表中)。

我用我的模型 GameUser 在数据库中获得了唯一性:

class GameUser < ActiveRecord::Base
belongs_to :game
belongs_to :user
validates_uniqueness_of :game_id, scope: :user_id
end

Controller (正在运行,当我已经收藏该游戏时返回一个错误):我想正确地写出 If,但我真的不知道如何写

 def favorite
game = Game.find(params[:id])
if
# Here is where I struggle,
#if User haven't got already a match in the DB (Join table User_ID / Game_ID) then :
current_user.games << game
flash[:notice] = "#{Game.name} Favorited"
redirect_to games_url
else
flash[:notice] = "#{Game.name} already favorited"
redirect_to games_url
end
end

提前非常感谢。

最佳答案

有游戏has_many :game_users吗?如果是这样就足够了

if game.game_users.exists?(user_id: current_user.id) 

请注意,即使没有关联,您也可以做到这一点

if GameUser.exists?(user_id: current_user.id, game_id: game.id)

关于mysql - Rails - Controller 中连接表的语句 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119166/

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