оптимизация запросов в рельсах - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть следующие две модели

class Creative < ActiveRecord::Base
  belongs_to :creative_size
end

class CreativeSize < ActiveRecord::Base
  has_many :creatives
end

Чтобы минимизировать попадания в базу данных, я хотел бы выполнить один запрос, который объединяет две таблицы и дает мне доступ к объявлениям и их размерам без необходимостиснова прикоснуться к базе данных.Следующее выполняет работу:

>> query = Creative.all: joins =>: creative_size
>> query [0] .creative_size.common_name

Однако я быочень хотелось бы иметь метод экземпляра в Creative

def name_of_size
  self.creative_size.common_name
end

, но когда я делаю это, следующий код выполняет два запроса к базе данных:

>> query = Creative.all: joins =>:creative_size
>> query [0] .name_of_size

Можно ли использовать Creative # name_of_size без повторного нажатия на db?Спасибо.

1 Ответ

0 голосов
/ 10 февраля 2011

Я не уверен, работает это или нет, но, пожалуйста, сделайте снимок!

query = Creative.find(:all, :joins => :creative_size).name_of_size
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...