【问题标题】:Rails records not in associationRails 记录没有关联
【发布时间】:2016-04-14 23:55:00
【问题描述】:

我正在寻找正确的方法来查找不属于用户的图书...这里是关联:

书-

has_many :owns, :dependent => :destroy

用户 -

has_many :owns, :dependent => :destroy
has_many :owned_books, :through => :owns, source: :book, :dependent => :destroy

拥有 -

belongs_to :user
belongs_to :book

我有不同标题的图书浏览量(例如,Book.where(title => "Foo")Book.where(title => "Bar"),并且想添加一个过滤器,让用户只能看到他们不拥有的具有该标题的图书。很明显我认为这应该是书籍模型中的一个新关联,但我有点迷茫。

【问题讨论】:

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


    【解决方案1】:

    如果您正在谈论排除用户拥有的那些:

    Book.where.not(id: user.owned_book_ids)
    

    您可以通过附加它们来链接其他条件。

    【讨论】:

    • 这就是拥有正确规范化数据结构的好处。像这样的查询有时非常简单。
    • 这是什么魔法!!!!!!非常感谢,先生 :D owned_book_ids @@ 我在任何其他 Rails 教程中都没有看到这个助手?
    • 这是任何has_many 关系的核心功能,在section 4.3.1 of the Rails guide on associations 中进行了解释。除非您真正深入研究文档,否则您不会认出它,所以我相信很多人甚至都不知道它的存在。
    猜你喜欢
    • 2014-12-08
    • 1970-01-01
    • 2011-07-16
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多