class Book < ActiveRecord::Base
belongs_to :owner, polymorphic: true
end
class User < Active record::Base
has_many :books, as: :owner
end
现在这本书有三个字段 - name, owner_id and owner_type
。现在我需要通过书籍搜索用户名。
像这样......
Book.includes(:user).where("user_name LIKE ?","bla")
任何人都可以帮助我吗?
答案 0 :(得分:0)
如果你这样做:
Book.includes(:owner)
无法急切加载多态关联
您将收到上述错误。
您需要定义Book和User
之间的关系 class Book < ActiveRecord::Base
belongs_to :owner, polymorphic: true
belongs_to :user, foreign_key: 'owner_id', conditions: "owner_type = 'User'"
end
请参阅here