我有一个具有嵌套属性的用户模型。
其中一个嵌套属性是电子邮件。
是否可以使用嵌套属性中的电子邮件地址找到用户模型?
类似于User.find_by(email: "email@example.com")
,但是会查看嵌套的电子邮件属性,而不是直接在顶级用户模型。
提前致谢!
答案 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