Предположим, у меня есть несколько разных моделей, и я строю сложные отношения, передавая их другим классам, таким как:
class UserDefinedParameter
def apply(base_relation)
base_relation.where(:abc => self.value)
#I want to see if base_relation was a ModelA here
end
end
class UserDefinedSort
def apply(base_relation)
base_relation.sort("#{self.col} DESC")
end
end
[ModelA, ModelB].each do |m|
result = m.where(:user => current_user)
UserDefinedParameter.all {|udp| result = udp.apply(result)}
UserDefinedSort.all {|uds| result = uds.apply(result)}
end
Что если мне нужно знать, есть ли у меня ModelA
или ModelB
внутри одного из apply
методов? Как я мог определить это?
Я не могу сделать base_relation.first.class
(как предложено здесь , поскольку запрос еще не полностью сформирован и еще не готов к отправке в базу данных.