如何使用嵌套属性查找模型

时间:2016-01-28 01:48:35

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

我有一个具有嵌套属性的用户模型。

其中一个嵌套属性是电子邮件。

是否可以使用嵌套属性中的电子邮件地址找到用户模型?

类似于User.find_by(email: "email@example.com"),但是会查看嵌套的电子邮件属性,而不是直接在顶级用户模型。

提前致谢!

2 个答案:

答案 0 :(得分:4)

鉴于用户has_many:电子邮件电子邮件表具有地址列

您可以使用includes做您想做的事情

User.includes(:emails).where(emails: { address: 'boris@test.com' })

答案 1 :(得分:0)

因此,如果您将电子邮件作为嵌套属性,则表示从用户到电子邮件的has_one或has_many关系

反过来就是belongs_to。 E.g。

belongs_to :user

在您的电子邮件课程中。有了这个,你可以简单地做:

Email.find_by(email: 'boris@test.com').user