Rails渴望加载所有查找
好吧,我一直在玩一些急切的装载东西,并有两个模型类似于:
Class Recipe < ActiveRecord::Base belongs_to :cookbook has_many :recipetags end
和
Class Cookbook [:recipetags] end
哪个好,当我找到一本食谱时,我急切地加载食谱,然后食谱急切加载:recipetags:
cb = Cookbook.find(10590, :include => [:recipes])
但我想要做的就是每当我打开一个食谱时,让它自动引入所有热切的关联 – 基本上我想这样做:
rec = Recipe.find(123)
并且在这种情况下急于加载:recipetags。
我意识到这似乎微不足道,但实际上我在Recipe上有大约4-5个关联,我只是没有在这里显示它们,而不是必须明确地执行:包含在每个查找调用我想它只是发生。 我假设我可以覆盖Recipe.find在Recipe模型中执行它,但是想知道是否有更清洁的方式….
我一直在使用default_scope在我总是想要加载的选定模型上执行此操作:
class Post < ActiveRecord::Base has_many :comments default_scope :include => :comments, :order => ["title ASC"] ... end
您应该可以使用命名范围执行此操作,但我知道存在许多可能的错误,希望它们现在都已修复。
- Rack中间件中的“env”变量是什么?
- Rails3 Active Admin – 如何仅过滤满足集合中所有已检查项目的记录
- ticket有可以发送消息的用户 – rails messaging
- Rails将ActiveRecord与Business Logic分离的应用程序
- 带有ajax的Rails checkbox_tag
- SQLite,Ruby on rails。 如何使用acts_as_votable gem获取最高投票对象?
- Ruby 1.9.1-p234,Passenger 2.2.5,Rails 2.3-POST封闭流在POST请求
- 嵌套路由link_to帮助器在一个地方工作但不在另一个地方工作
- Rails 3的“捆绑安装”速度超快(需要1秒),但之后没有Rails吗? (使用rvm)