Направляющие нетерпеливая загрузка на всех находят

Хорошо, я играл вокруг с некоторыми нетерпеливыми вещами загрузки и имею 2 модели что-то как:

Class Recipe < ActiveRecord::Base
    belongs_to :cookbook
    has_many   :recipetags
end

и

Class Cookbook < ActiveRecord::Base
    has_many :recipes, :include => [:recipetags]
end

Который удается хорошо, когда я нахожу Поваренную книгу, тогда я нетерпеливая загрузка рецепты и в свою очередь рецепты нетерпеливая загрузка: recipetags:

cb = Cookbook.find(10590, :include => [:recipes])

Но то, что я хочу также сделать, - то, каждый раз, когда я открываю рецепт, имею его получение по запросу во всем, нем - нетерпеливые ассоциации автоматически - в основном я хочу сделать:

rec = Recipe.find(123)

и имейте его нетерпеливая загрузка: recipetags в этом случае также.

Я понимаю, что это кажется тривиальным, но в действительности у меня есть приблизительно 4-5 ассоциаций на Рецепте, я просто не показываю им здесь, и вместо того, чтобы иметь необходимость явно сделать: включайте в каждый вызов находки, я хотел бы, чтобы он просто произошел. Я предполагаю, что могу переопределить Recipe.find, чтобы сделать это в модели Recipe, но задавался вопросом, был ли более чистый путь....

18
задан Cameron Ferroni 11 January 2010 в 14:48
поделиться

2 ответа

Я использую default_scope, чтобы сделать это на выбранных моделях, где я всегда хочу ждать нагрузки:

class Post < ActiveRecord::Base
  has_many :comments
  default_scope :include => :comments, :order => ["title ASC"]
  ...
end
33
ответ дан 30 November 2019 в 07:44
поделиться

Вы должны быть в состоянии сделать это с названными областями, но я понимаю, что с этим было несколько возможных ошибок, надеюсь, они все это исправлено.

0
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: