我有3个表,分别是电影院,用户,user_views,cinema_ratings,个人资料
所以我的user_views表有:user_id和cinema_id
我想做的是 在我的cinema_ratings控制器中,我想更新,创建和删除我的user_views表。
我想写像
if current_user has not done cinema_ratings ?
if current_user_id is present in user_views[user_id]?
#do some thing
else
update user_id in user_views
else
delete user_id and cinema_id in user views
redirect to actual cinemas page
#do some thing
端 端
这是我想做的,但我不知道如何调用user_views表来更新,读取和删除此控制器。
任何人都可以告诉我如何做到这一点。
答案 0 :(得分:0)
我将表格更新放在User
模型中。
def view! (cinema)
self.user_views.create!(cinema_id: cinema.id)
end
然后在您的控制器中,无论您需要呼叫它,只需拨打@user.view!(@cinema)
通常,只要您处理数据库,就要将该逻辑保留在模型中。 “fat models, lean controllers”有一些标准。
希望这有帮助!
修改强>
所以......对于那些if语句,你的语法已经过时了......但我会尝试。
您也可以将这些检查放在模型中。我经常这样做。所以:
def viewed? (cinema)
!self.user_views.where(id: cinema.id).empty?
end
然后,您可以检查用户是否使用@user.viewed?(@cinema)
在某个电影院观看过电影。这将是你的条件的一部分。
所有这一切以及你的问题的想法:
这是我想做的,但我不知道如何调用user_views表来更新,读取和删除此控制器。
在模型上放置方法,并从控制器中调用它们。