создание именованных областей: нужно ли объявлять эту модель перед атрибутом - PullRequest
1 голос
/ 24 октября 2011

При создании именованных областей в модели необходимо ли вызывать модель перед атрибутом, который вы используете в своем запросе?

Пример

  scope :sorted, order('position ASC')

против

  scope :sorted, order('pages.position ASC')

является последним предпочтительным или в соответствии с соглашениями? есть ли преимущества для обоих? или это просто вопрос ясности или разборчивости?

1 Ответ

2 голосов
/ 24 октября 2011

Вам нужно будет объявить модель, если область будет использоваться с объединением с другой моделью, у которой есть поле с тем же именем.

Скажите company has_one :contact, а Contact имеет position. Тогда

Company.sorted.joins(:contact)

будет жаловаться (на уровне SQL), что неясно, какое из полей position следует использовать для сортировки.

В противном случае это необязательно.

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