Должен ли ассоциация has_many инициировать запрос, чтобы получить список связанных экземпляров? - PullRequest
0 голосов
/ 23 января 2019

Я использую активную запись в проекте 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 и инициализирует его в пустой массив?или я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...