Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 方法,如果用户是RIAL中某个类别的mod,则返回true或false_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 方法,如果用户是RIAL中某个类别的mod,则返回true或false

Ruby on rails 方法,如果用户是RIAL中某个类别的mod,则返回true或false,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我想写一个简单的mod方法,检查一个表,看看用户是否是某个类别的版主,然后返回true或false 一旦制定了方法,我希望写下如下内容: 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 =

我想写一个简单的mod方法,检查一个表,看看用户是否是某个类别的版主,然后返回true或false

一旦制定了方法,我希望写下如下内容:

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,但我还没有从零开始制作一个方法(除了在教程中)。最好的方法是什么?

干净的方法

class User < ActiveRecord::Base
  def mod_of?(anime_id)
    anime_mods_relationships.exists?(anime_category_id: anime_id)
  end
end

@SzilardMagyar我没有一个布尔mod列存储在用户表中,所以user.mod?行不通。用户可以调节多个类别,类别可以有多个mods,所以我制作了一个mods关系表。看起来很棒。但是这种方法是如何工作的呢?就像它如何知道在db中检查类别id和用户id是否配对一样,我得到了一个错误:未定义的方法'mod#u of',奇怪的是它没有定义。你能把你的整个
user.rb
发出来供参考吗?我把这个方法放在了动漫类控制器的文件里。动画类别控制器创建动作是我调用的
current\u user.mod\u of?params[:anime\u id]
。不,我的意思是你应该把这个方法放到
models/user.rb
文件中。这是模型的逻辑。
if current_user.mod_of? params[:anime_id]
  # do something
else
  # do another thing
end