我想写一个简单的mod方法来检查一个表,看看用户是否是一个类别的主持人,并返回true为假。
一旦制定了方法,我希望写出类似的东西:
if current_user.mod? #or mod(current_user)?
blah
else
blah blah
end
这是我的
def mod
@user = current_user.id
User.find(@user).anime_mods_relationships.where("anime_category_id = ?", params[:anime_id])
end
用户在包含用户ID和类别ID的关系表中作为mod关联。
此方法只是找到关系。我不确定如何更改它以返回true或false,具体取决于它是否可以找到关系。我在想也许存在?方法可能会工作,但无法想象如何将其集成到方法中。
我制作了一个rails应用程序,以便在rails上做得更好但是我还没有从头开始制作一个方法(除了在教程中)。什么是最好的解决方法?
答案 0 :(得分:2)
干净的方式来做到这一点
class User < ActiveRecord::Base
def mod_of?(anime_id)
anime_mods_relationships.exists?(anime_category_id: anime_id)
end
end
然后在控制器中调用它
if current_user.mod_of? params[:anime_id]
# do something
else
# do another thing
end