【问题标题】:How to find a model using a nested attribute如何使用嵌套属性查找模型
【发布时间】:2016-01-28 01:48:35
【问题描述】:

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

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

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

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

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    鉴于 User has_many :emailsEmail 表有地址列

    你可以使用includes做你想做的事

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

    【讨论】:

      【解决方案2】:

      因此,如果您将电子邮件作为嵌套属性,则意味着用户与电子邮件之间存在 has_one 或 has_many 关系

      与之相反的是belongs_to。例如

      belongs_to :user
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多