Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 仅在第一次加载与ActiveRecord的关联时立即加载_Ruby On Rails 4_Activerecord_Eager Loading - Fatal编程技术网

Ruby on rails 4 仅在第一次加载与ActiveRecord的关联时立即加载

Ruby on rails 4 仅在第一次加载与ActiveRecord的关联时立即加载,ruby-on-rails-4,activerecord,eager-loading,Ruby On Rails 4,Activerecord,Eager Loading,我有一个用户模型和一个:朋友协会 当我创建数据时,我会将用户及其前5个朋友 我可以 User.includes(:friends) 但这需要所有的朋友 有没有办法只交前5个朋友?我想以下方法可以奏效: class User < ActiveRecord::Base has_many :friends has_many :top_friends, -> { limit(5).order(:id) }, class_name: Friend end User.includes

我有一个
用户
模型和一个
:朋友
协会

当我创建数据时,我会将用户及其前5个朋友

我可以

User.includes(:friends)
但这需要所有的朋友


有没有办法只交前5个朋友?

我想以下方法可以奏效:

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

User.includes(:top_friends) 
class用户{limit(5)。顺序(:id)},类名:Friend
结束
用户。包括(:顶级朋友)

如果使用指定的:limit选项加载关联,它将被忽略,并返回所有关联的对象。根据我的经验,秩序也被忽略了。