在Rails中查询

问题描述

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

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

例如:

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

解决方法

那这样的事情呢?

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

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