ruby-on-rails-4 - 仅预加载与 ActiveRecord 的第一个关联

标签 ruby-on-rails-4 activerecord eager-loading

我有一个 User 模型和一个 :friends 关联

当我创建数据时,我会选择用户及其前 5 个 friend

我可以做到

User.includes(:friends)

但这需要所有 friend 。

有没有办法只接受前 5 个 friend ?

最佳答案

我认为以下方法可行:

class User < ActiveRecord::Base
  has_many :friends
  has_many :top_friends, -> { limit(5).order(:id) }, class_name: Friend
end

User.includes(:top_friends) 

关于ruby-on-rails-4 - 仅预加载与 ActiveRecord 的第一个关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142478/

相关文章:

ruby-on-rails - Rails 可选关联查询

ruby-on-rails - 如果属性为 nil,则 ActiveRecord 默认值

hibernate - 如何避免在实体的 hibernate 条件中初始化 Eager 列

java - 为什么在 Struts 1.2.7 中延迟实例化 MessageResourcesFactory?

ruby-on-rails - 性能 : adding a new column, 或将现有列加在一起哪个更糟?

ruby-on-rails - 在 Rails4 中使用 update_attributes 不更新表单数据

ruby-on-rails - 将 ActiveRecord 查询作为变量返回,而不是散列?

ruby - 将字符串转换为 ruby​​ 中的位,添加 1 位并转换回 ascii

ruby-on-rails - Rails - update_column 和 ActiveRecord 枚举

laravel - 用 Eloquent 快速加载