在Rails中查询

问题描述

我有一个带有两个表的Rails应用程序。一种是具有电子邮件和密码的用户(设计模型)。另一个是属于用户的产品。

当用户使用该应用程序登录时(包括他的电子邮件和密码),我希望我的产品控制器进行过滤,以便已登录的用户只能看到共享了当前已登录精确域的其他用户注册的产品用户(当前用户)中。

例如:

  • 登录为:test@gmail.com

  • 可见的产品:

    • 注册人:test2@gmail.com
    • 注册人:test3@gmail.com
  • 产品不可见:

    • 注册人:test4@yahoo.com
    • 注册人:test5@yahoo.com

有可能吗?我知道.where方法,但是我在语法上苦苦挣扎。

解决方法

那这样的事情呢?

email_domain = current_user.email.split("@").last 
@products = Products.joins(:users).where("users.email like ?","%#{email_domain}")

第一行获取电子邮件域。 第二行在user.email和部分email_domain之间进行检查。这里的关键字符是%,用作通配符。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...