has_many关联是否应该触发查询以获取相关实例列表?

时间:2019-01-23 18:59:21

标签: ruby activerecord associations

我在ruby项目中使用活动记录。我有一个具有has_many:foos的机器人类。在我的数据库中,我有一个foos表,其中有一个robot_id作为外键

class Robot < ActiveRecord::Base
  has_many :foos
end


class Foo < ActiveRecord::Base
  belongs_to :robot
end

然后我创建一个机器人并使用此robot_id作为外键创建foos。 然后,我尝试编写@ robot.foos以获得与机器人相关联的foos列表。但是我只得到一个空数组。 但是,当我尝试Foo.where(robot_id: @robot.id)时,我会得到所需的列表。

我认为has_many方法创建了foos实例方法,并且该实例方法实际上触发了查询,以获取与我的方法关联的所有foos。显然不是。

has_many方法是否仅为foos创建一个attr_accessor并将其初始化为一个空数组?还是我在这里想念什么?

0 个答案:

没有答案