ruby-on-rails – 渴望加载嵌套关联和范围

ruby-on-rails – 渴望加载嵌套关联和范围,第1张

概述我是初学者,很难解释我的问题: 我的模特: class Skill has_many :categories has_many :positions, :through => :categoriesendclass Category belongs_to :skill has_many :positions endclass Position belongs_ 我是初学者,很难解释我的问题:

我的模特:

class Skill    has_many :categorIEs  has_many :positions,:through => :categorIEsendclass category  belongs_to :skill  has_many :positions  endclass position  belongs_to :category  has_one :skill,:through => :category    end

我可以成功地加载所有内容,如下所示:

@skills = Skill.includes(:positions)

但有时我想在职位上应用范围:

class position...  scope :active,where(:hIDden => false)end

我希望我能做到:

@skills = Skill.includes(:positions.active)

相反,我在视图中应用范围,但是急切加载不再起作用:

<%= skill.positions.acitve ... %>

是否可以同时拥有热切的装载和范围?

解决方法 您可以使用其他关联

class Skill    has_many :categorIEs  has_many :positions,:through => :categorIEs  has_many :active_positions,:through => :categorIEsendclass category  belongs_to :skill  has_many :positions    has_many :active_positions,:class_name => "position",:conditions => {:hIDden => false}endclass position  belongs_to :category  has_one :skill,:through => :category    end

然后

@skills = Skill.includes(:active_positions)

但是你会得到两个联想.如果您曾使用技能.位置,则将从数据库加载所有技能的位置.您应该只使用skill.active_positions.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 渴望加载嵌套关联和范围全部内容,希望文章能够帮你解决ruby-on-rails – 渴望加载嵌套关联和范围所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1289086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存