Ну, может быть, есть лучший способ, но я знаю, что вы можете использовать фактические Арель условия (в отличие от ActiveRecord :: Relation s) в ассоциациях с использованием Ареля to_sql
функция.
has_many :spam_comments, :class_name => 'Comment', :conditions => Comment.arel_table[:spammy].eq(true).to_sql
Вы заметите, что реальный код Arel не такой скудный, как отношения ActiveRecord.
Я нашел комментарий в главной ветке Rails, который ссылался на передачу предиката Arel как условие, но этот код, похоже, отсутствует в ветке 3.0. По крайней мере, не то, что я мог найти.