如果用户是rials中类别的mod,则返回true或false的方法

时间:2016-01-05 03:19:09

标签: ruby-on-rails ruby-on-rails-4

我想写一个简单的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上做得更好但是我还没有从头开始制作一个方法(除了在教程中)。什么是最好的解决方法?

1 个答案:

答案 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