【发布时间】:2016-01-28 01:48:35
【问题描述】:
我有一个具有嵌套属性的用户模型。
其中一个嵌套属性是电子邮件。
是否可以使用嵌套属性中找到的电子邮件地址来查找用户模型?
因此类似于User.find_by(email: "email@example.com"),但查看嵌套的电子邮件属性而不是直接查看顶级用户模型。
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 polymorphic-associations
我有一个具有嵌套属性的用户模型。
其中一个嵌套属性是电子邮件。
是否可以使用嵌套属性中找到的电子邮件地址来查找用户模型?
因此类似于User.find_by(email: "email@example.com"),但查看嵌套的电子邮件属性而不是直接查看顶级用户模型。
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 polymorphic-associations
鉴于 User has_many :emails 和 Email 表有地址列
你可以使用includes做你想做的事
User.includes(:emails).where(emails: { address: 'boris@test.com' })
【讨论】:
因此,如果您将电子邮件作为嵌套属性,则意味着用户与电子邮件之间存在 has_one 或 has_many 关系
与之相反的是belongs_to。例如
belongs_to :user
在您的电子邮件课程中。有了这个,你可以简单地做:
Email.find_by(email: 'boris@test.com').user
【讨论】: