代码之家  ›  专栏  ›  技术社区  ›  Rob

如果用户是里亚尔中某个类别的mod,则返回true或false的方法

  •  0
  • Rob  · 技术社区  · 10 年前

    我想编写一个简单的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
    

    用户在关系表中被关联为mod,关系表包含用户id和类别id。

    这个方法只是找到关系。我不确定如何将其更改为true或false,这取决于它是否能找到关系。我在想可能存在吗?方法可能有效,但无法想象如何将其集成到方法中。

    我正在制作一个rails应用程序以更好地使用rails,但我还没有从头开始制作方法(除了教程中)。最好的方法是什么?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Hoang Phan    10 年前

    干净利落的方法

    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