ActiveRecord: доступ к ассоциации владельцев после создания записи - PullRequest
1 голос
/ 29 февраля 2012

Используя Rails 2.3.14, я ищу способ получить доступ к владельцу объекта ActiveRecord после его сборки (но до сохранения), чтобы получить некоторые значения от владельца. Вроде бы просто, но мой подход всегда запускает ненужный запрос к базе данных.

Пример:

class Parent < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :parent

  def after_initialize
    self.some_value = parent.some_value
    # This fires an additional database query to get the parent
  end
end

parent = Parent.find(1)
# SELECT * FROM `parents` WHERE (`parents`.`id` = 1) 

child = parent.children.build
# Same SELECT query is fired again, but of course not needed

Я ищу способ доступа к объекту ассоциации (здесь: родитель) без , выполняющего дополнительный доступ к базе данных. Как это можно сделать?

1 Ответ

0 голосов
/ 29 февраля 2012

В Rails 3 есть новая опция: inverse_of, для того, чтобы для этого можно было использовать own_to / has_many, но не в Rails 2. Возможно, вам придется реализовать подобную функцию самостоятельно.

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