Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3将相关模型与之连接';s的默认范围_Ruby On Rails_Activerecord_Arel - Fatal编程技术网

Ruby on rails Rails 3将相关模型与之连接';s的默认范围

Ruby on rails Rails 3将相关模型与之连接';s的默认范围,ruby-on-rails,activerecord,arel,Ruby On Rails,Activerecord,Arel,我尝试使用以下设置跨模型进行查询 Class Scorecard < AR::Base default_scope where(:archived => false) belongs_to :user has_many :scorecard_metrics end Class ScorecardMetric < AR::Base belongs_to :scorecard end Class User < AR::Base has_many :sc

我尝试使用以下设置跨模型进行查询

Class Scorecard < AR::Base
  default_scope where(:archived => false)
  belongs_to :user
  has_many :scorecard_metrics
end

Class ScorecardMetric < AR::Base
  belongs_to :scorecard
end

Class User < AR::Base
  has_many :scorecards
end

这对我来说似乎很混乱,有没有办法加入并包含加入的关联的默认范围?

看起来我找到了我想要的答案,我就是这么做的

scope :for_user, lambda { |user| joins(:scorecard).where('scorecards.user_id = ?', user.id) & Scorecard.scoped }

如果没有重复的逻辑,这会更好

看起来我找到了我想要的答案,我就是这么做的

scope :for_user, lambda { |user| joins(:scorecard).where('scorecards.user_id = ?', user.id) & Scorecard.scoped }

如果没有重复的逻辑,

Scorecard.scoped的意思是什么?Scorecard.scoped只是记分卡的默认范围,&执行联合什么是
&记分卡。scoped
的意思是什么?Scorecard.scoped只是记分卡的默认范围,&执行联合