我的模特:
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 – 渴望加载嵌套关联和范围所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)