Я делаю вещи нестандартным способом.Я назначаю IDS при создании объекта.
Итак, во время обратных вызовов before_save, которые обращаются к коллекциям дочерних ассоциаций родительской модели, у меня возникает эта проблема, когда ActiveRecord фактически не выполняет SQL для поиска дочерней ассоциации.
Я могу получить связанные объекты, выполнив поиск по их классу, как показано ниже, но есть ли способ заставить методы ассоциации коллекции фактически выполнить запрос и извлечь дочерние элементы, когда сам родитель не былсохранено еще?
class Project < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
end
3.times do
Task.create(:project_id => 1)
end
Tasks.where(:project_id => 1).count
# 3
tasks = Tasks.where(:project_id => 1)
# SELECT * FROM tasks WHERE project_id = 1;
p = Project.new(:id => 1)
p.tasks # nil
# no SQL query executed