Хорошо, я играл вокруг с некоторыми нетерпеливыми вещами загрузки и имею 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, но задавался вопросом, был ли более чистый путь....
Я использую default_scope, чтобы сделать это на выбранных моделях, где я всегда хочу ждать нагрузки:
class Post < ActiveRecord::Base
has_many :comments
default_scope :include => :comments, :order => ["title ASC"]
...
end
Вы должны быть в состоянии сделать это с названными областями, но я понимаю, что с этим было несколько возможных ошибок, надеюсь, они все это исправлено.