Rails ActiveRecord альтернатива ModelName.all - PullRequest
2 голосов
/ 25 февраля 2012

Недавно я использовал ModelName.where(nil) в определенных ситуациях, когда я мог бы использовать ModelName.all.

Разница между ними заключается в том, что первый возвращает отношение ActiveRecord, а второй возвращает массив.Я могу связывать запросы от первого, но не от второго.Мне не приятно, что я теряю самодокументированную природу ModelName.all.

Существует ли какой-либо метод, например ModelName.all, который возвращает AR-отношение и поддерживает самодокументирование?

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

В этом случае вы можете использовать ModelName, поскольку вы не можете использовать all bcz, он возвращает массив.

Например,

a = ModelName
a = a.active # here active is scope
a = a.where(:deleted => false)
a = a.all
1 голос
/ 25 февраля 2012

ModelName.scoped даст вам отношение AR с областью по умолчанию, ModelName.unscoped даст отношение AR без области по умолчанию.

0 голосов
/ 25 февраля 2012

ну я обычно пользуюсь

Model.find(:all, :conditions=>whatever, :order=>whatever,:limit=>whatever)

В вашем случае, возможно, Model.find (: все) подойдет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...