我有一个具有User模型(使用Devise gem创建)和Post模型的应用程序。用户和模型都具有has_and_belongs_to_many关系。我有一个加入表,在其中添加了每个帖子创建者(以后,我将允许帖子创建者为该帖子添加更多编辑器,但这并不重要)。问题是当我想检查current_user是否是允许编辑帖子的用户之一。
我已经尝试检查@ post.users中是否包含当前用户,但这似乎不是解决此问题的有效方法。
@post.users.include?(current_user)
此刻,我什至理解了为什么它不起作用,但是我不知道其他函数是否根据数据库中的users_posts表返回布尔值。
答案 0 :(得分:1)
这可能会帮助您:
可以使用true
或false
进行检查,如本博文所述
Rails - check if record exists in has_many association
OR
@post.users.find(current_user.id)
这将返回找到的用户对象,否则将引发错误ActiveRecord::RecordNotFound
。