default_scope?
действительно удаляется из Rails 3 и более поздних версий.Я не знаю, почему эта ошибка появляется (у меня та же проблема), но использование union()
в областях, кажется, не работает.Использование их напрямую (за пределами scope
), кажется, работает:
User.regular_friends(user).union(User.inverse_friends(user))
Лично я не помещаю объединение в область и использую его напрямую (к счастью, я использую его только в одном месте, поэтому для меняэто не имеет большого значения).
Я также не могу использовать union()
напрямую с find()
, first()
, all()
и т. д. Я думаю, arel еще нетзавершено ... Чтобы обойти эту проблему, я использую:
sql = User.regular_friends(user).union(User.inverse_friends(user)).to_sql
result = find_by_sql(sql)
Но, возможно, / возможно, есть более хорошие способы предотвратить это ...?(как ожидание обновления арла: P)