Я использую активную запись в проекте ruby.У меня есть класс роботов has_many: foos.В моей базе данных у меня есть таблица foos, у которой есть robot_id в качестве внешнего ключа
class Robot < ActiveRecord::Base
has_many :foos
end
class Foo < ActiveRecord::Base
belongs_to :robot
end
Затем я создаю робота и создаю foos с этим robot_id в качестве внешнего ключа.Затем я попытался написать @ robot.foos, чтобы получить список foos, связанных с моим роботом.Однако я получаю только пустой массив.Однако когда я пытаюсь Foo.where(robot_id: @robot.id)
, я получаю список, который мне нужен.
Я думал, что метод has_many создал метод экземпляра foos и что этот метод экземпляра фактически вызвал запрос, чтобы получить все foos, связанные с моим методомпод капотом.По-видимому, это не так.
Метод has_many только создает attr_accessor
для foos и инициализирует его в пустой массив?или я что-то здесь упускаю?