Мне нужно было сделать это (Remove a 'where' clause from an ActiveRecord::Relation
, который создавался областью видимости) при объединении двух областей, и сделал это так: self.scope(from,to).values[:joins]
.
Я хотел объединить значения из двух областей, которые составляли «join_scope», без предложений «where», чтобы я мог отдельно добавлять измененные «where» (измененные для использования «OR» вместо «AND») .
Для меня это пошло в объединенных объёмах, вот так:
scope :joined_scope, -> (from, to) {
joins(self.first_scope(from,to).values[:joins])
.joins(self.other_scope(from,to).values[:joins])
.where(first_scope(from,to).ast.cores.last.wheres.inject{|ws, w| (ws &&= ws.and(w)) || w}
.or(other_scope(from,to).ast.cores.last.wheres.last))
}
Надеюсь, что кому-то поможет